web-dev-qa-db-fra.com

Erreur Ajax lors de la tentative de mise à jour du composant

J'ai quelques problèmes avec un site Joomla 3.6 que je gère.

  • Le problème 1 concerne le composant de mise à jour Joomla. Lorsque la mise à jour tente de s'exécuter, une erreur d'alerte Ajax et l'erreur suivante s'affichent dans la console:

    XMLHttpRequest ne peut pas charger http://www.example.com/administrator/components/com_joomlaupdate/restore.php . Aucun en-tête 'Access-Control-Allow-Origin' n'est présent sur la ressource demandée. Origin ' http://example.com ' n'est donc pas autorisé à accéder.

  • Le deuxième problème concerne le téléchargement d'images. Chaque fois que j'essaie de télécharger une image dans le gestionnaire de médias, un article ou un module, le site agit comme s'il téléchargeait l'image, actualisait, mais ne téléchargeait jamais l'image.

    Le rapport d'erreur est activé sur maximimum et toujours pas d'erreur après la fin de la routine. Je dois dire que je suis complètement hors de moi quant à ce qui se passe.

Je ne peux que supposer que les deux problèmes sont liés.

3
TEN Design

J'ai récemment rencontré cette erreur XMLHttpRequest moi-même. La racine du problème a provoqué 3 problèmes différents.

SOLUTION: Dans mon cas, le problème était dû à un paramètre incorrect pour la variable publique $ live_site dans le fichier configuration.php (situé dans le répertoire Dossier racine de Joomla). Le site Web était https://website.com mais j'avais défini public $ live_site = ' https://www.website.com '; <- Le www n'aurait pas dû être là.

Finalement, j'ai mis public $live_site = ''; Mais public $live_site = 'https://website.com'; Aurait aussi bien fonctionné.

Alternativement, vous pouvez probablement configurer cors pour permettre le partage de ressources entre origines, mais il s'agit d'une solution côté serveur qui dans mon cas était inutile. De plus, si vous le définissez incorrectement, cela peut constituer un risque pour la sécurité.


La définition incorrecte de $ live_site dans configuration.php a généré 3 problèmes.

  • Lors de la connexion à https: // site web/administrateur Je n'ai pas été informé des nouvelles mises à jour des extensions. Lorsque je me suis connecté à website.com/administrator avec la console ouverte (Ctrl + Maj + i), l'erreur -Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://www.website.com/administrator/index.php?option=com_installer&view=update&task=update.ajax&cbe7c724489164bc62ef5fd63d87884b=1&eid=0&skip=700. (Reason: CORS header 'Access-Control-Allow-Origin' missing) a été détectée.
  • Le deuxième problème est survenu lorsque j'ai essayé de réinstaller Joomla en allant dans Administrateur -> Composants -> Joomla! Update -> Live Update. Pour la méthode d'installation, j'ai choisi de remplacer les fichiers. J'ai un message disant
    Error: AJAX loading Error:error

    "Erreur: AJAX Erreur de chargement: erreur" puis je pouvais voir dans la console

    Joomla Ajax XmlHttpRequest error Update

    avec le message suivant Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://www.website.com/administrator/components/com_joomlaupdate/restore.php. (Reason: CORS header 'Access-Control-Allow-Origin' missing).

  • Le troisième problème que je ne connaissais pas avant cette question. Lors du téléchargement d'images dans le gestionnaire de médias, dans un article ou dans un module, le site agit comme s'il téléchargeait l'image, actualisait, mais ne téléchargeait jamais l'image.

Tous ces problèmes étaient dus à une valeur incorrecte pour la variable $ live_site dans configuration.php.

Je suis finalement tombé sur la réponse grâce à une référence trouvée dans https://www.itoctopus.com/ajax-loading-error-error-when-updating-your-joomla-website

4
TryHarder

Mise à jour

J'ai eu à nouveau le problème aujourd'hui, renommer htaccess uniquement sans désactiver les outils d'administration, puis la mise à jour a fonctionné pour moi. Cela semble donc être lié aux règles définies dans htaccess par Admin Tools.

Réponse donnée initialement:

Pour l'erreur de mise à jour "Erreur de chargement Ajax: interdit ", essayez:

1) Désactivation des outils d'administration (si installés/composant + plugin système)

2) Désactiver Akeeba Backup (si installé/package + composant + fichier_akeeba)

) Renommer htaccess

J'ai fait les 3 étapes ensemble et cela a fonctionné pour la mise à jour 3.8.3.

Une fois la mise à jour terminée, vous pouvez refaire les étapes 1 à 3. Si htaccess a été supprimé ou ne peut pas être renommé, vous pouvez en générer un nouveau via Outils d'administration -> htaccess Maker

2
Dennis Heiden

Cela se produit généralement lorsque vous avez une règle .htaccess (éventuellement insérée à l'origine pour plus de sécurité) bloquant l'accès au fichier restore.php. Nous avons écrit à ce sujet ici .

Cela dit, il faut se demander pourquoi Joomla a besoin d'accéder au fichier restore.php, Qui semble être entièrement dédié à Akeeba Backup, même si Akeeba Backup n'est pas installé. Franchement, nous n’avons pas enquêté à fond sur le problème (peut-être que Joomla a besoin d’une fonction de ce fichier). Néanmoins, ce fichier est un fichier spécifique à Akeeba et ne devrait pas figurer dans le noyau.

1
itoctopus