193 votes

Htaccess Access-Control-Allow-Origin

Je suis en train de créer un script qui se charge de manière externe sur d'autres sites. Il charge du CSS et du HTML et fonctionne correctement sur mes propres serveurs.

Cependant, lorsque j'essaie de l'utiliser sur un autre site, il affiche cette terrible erreur:

Access-Control-Allow-Origin

Ici, vous pouvez le voir charger parfaitement: http://tzook.info/bot/

Mais sur ce autre site, il affiche l'erreur: http://cantloseweight.co/robot/

J'ai téléchargé le script de chargement sur jsfiddle: http://jsfiddle.net/TL5LK/

J'ai essayé de modifier le fichier htaccess comme ceci:

    Header set Access-Control-Allow-Origin *

Ou comme ceci:

Header set Access-Control-Allow-Origin *

Mais cela ne fonctionne toujours pas.

355voto

vifargent Points 316

Essayez ceci dans le fichier .htaccess du dossier racine externe :

    Header set Access-Control-Allow-Origin "*"

Et si cela concerne uniquement les scripts .js, vous devriez envelopper le code ci-dessus à l'intérieur de ceci :

...

82voto

Lukas Liesis Points 564

Personne ne dit que vous devez également avoir mod_headers activé, donc si cela ne fonctionne toujours pas, essayez ceci:

(ces conseils fonctionnent sur Ubuntu, je ne sais pas pour les autres distributions)

vous pouvez vérifier la liste des modules chargés avec

apache2ctl -M

pour activer mod_headers, vous pouvez utiliser

a2enmod headers

bien sûr, après toute modification dans Apache, vous devez le redémarrer:

/etc/init.d/apache2 restart

Ensuite, vous pouvez utiliser

    Header set Access-Control-Allow-Origin "*"

Et si mod_headers n'est pas actif, cette ligne ne fera rien du tout. Vous pouvez essayer de sauter la clause if et simplement ajouter Header set Access-Control-Allow-Origin "*" dans votre configuration, cela devrait générer une erreur au démarrage si mod_headers n'est pas actif.

40voto

vknyvz Points 100

De mon expérience;

si cela ne fonctionne pas depuis php, faites ceci dans .htaccess, cela a fonctionné pour moi

    Header set Access-Control-Allow-Origin http://www.vknyvz.com  
    Header set Access-Control-Allow-Credentials true
  • les identifiants peuvent être vrais ou faux en fonction des paramètres de votre requête ajax

27voto

Thoman Points 148

Ajoutez un fichier .htaccess avec les directives suivantes à votre dossier de polices, si vous avez des problèmes d'accès à vos polices. Peut facilement être modifié pour être utilisé avec les fichiers .css ou .js.

    Header set Access-Control-Allow-Origin "*"

11voto

YumYumYum Points 2882

Dans Zend Framework 2.0, j'avais ce problème. Peut être résolu de deux manières .htaccess ou en-tête php je préfère .htaccess donc j'ai modifié .htaccess de :

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

à

RewriteEngine On

    Header set Access-Control-Allow-Origin "*"

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

et ça a commencé à fonctionner

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X