Mortel de la SCRO quand http://localhost est à l'origine
Je suis coincé avec ce SCRO problème, même si j'ai mis le serveur (nginx/node.js) avec les en-têtes appropriés.
Je peux voir dans Chrome volet Réseau -> en-Têtes de Réponse:
Access-Control-Allow-Origin:http://localhost
qui devrait faire l'affaire.
Voici le code que j'utilise désormais pour tester:
var xhr = new XMLHttpRequest();
xhr.onload = function() {
console.log('xhr loaded');
};
xhr.open('GET', 'http://stackoverflow.com/');
xhr.send();
- Je obtenir
XMLHttpRequest cannot load http://stackoverflow.com/. Origin http://localhost is not allowed by Access-Control-Allow-Origin.
Je soupçonne que c'est un problème dans le script client et non serveur de configuration...
- Non, stackoverflow.com besoins pour définir cet en-tête, pas vous. :x. Quel serait le point d'origine de la politique autrement.
- Essayez d'accéder au serveur que vous avez mis en place pas de débordement de pile. 😉
- DOH! Est-il un moyen de dire à google chrome (ou autre navigateur), pour accéder à la ressource, même si la tête est manquante lorsque mon origine est localhost?
- Exécutez vos codes en Chrome(20.0.1132.57, Windows 7), fonctionne très bien.
- Si vous utilisez localhost avec un port cette réponse a fonctionné pour moi serverfault.com/a/673551/238261.
- Veuillez vous Référer à ce post pour répondre à stackoverflow.com/questions/53528643/...
Vous devez vous connecter pour publier un commentaire.
Chrome ne prend pas en charge localhost pour la SCRO demandes (un bug ouvert en 2010, a marqué WontFix en 2014).
Pour contourner ce problème, vous pouvez utiliser un nom de domaine comme
lvh.me
(qui pointe sur l'adresse 127.0.0.1 comme localhost), ou de lancer google chrome avec la--disable-web-security
drapeau (en supposant que vous êtes tout simplement de le tester).Grrrr...
localhost:1111
oulocalhost:[some other port number]
, utilisezhttp://lvh.me:1111
ouhttp://lvh.me[some other port number]
/etc/hosts
, j'obtiens:The 'Access-Control-Allow-Origin' header contains the invalid value 'myhost'.
Par @Beau réponse, Chrome ne prend pas en charge localhost SCRO demandes, et il est peu probable que tout changement dans cette direction.
- Je utiliser le Permettez-Control-Allow-Origin: * Extension Chrome pour aller autour de cette question. L'extension ajoutez les en-Têtes HTTP de la SCRO:
La le code source est publié sur Github.
Noter que l'extension de filtre toutes les Url par défaut. Cela peut bloquer certains sites web (par exemple: Dropbox). J'ai changé le filtre seulement localhost Url avec l'URL suivante filtre
Le vrai problème est que si l'on
-Allow-
pour toutes les demandes (OPTIONS
&POST
), google Chrome annuler.Le code suivant fonctionne pour moi avec
POST
à LocalHost avec Chrome