web-dev-qa-db-fra.com

SEC7118: XMLHttpRequest CORS - IE Message console

J'utilise CORS POST demande avec tout ce qui est pris en charge comme indiqué @ http://www.html5rocks.com/en/tutorials/cors/

Le serveur définit l'en-tête de réponse sur: 'Access-Control-Allow-Origin': '*' et je peux voir cette valeur d'en-tête dans IE outil de développement.

Mais sur le navigateur IE10, je vois le message de la console comme "SEC7118: XMLHttpRequest pour http: // requis Cross Origin Resource Sharing (CORS).

Lorsque je vérifie sur le site Microsoft, il a donné ci-dessous une explication.

http://msdn.Microsoft.com/en-us/ie/dn423949 (v = vs.94) .aspx

SEC7118

Description: "XMLHttpRequest for [URL] required Cross Origin Resource Sharing (CORS)." An XMLHttpRequest a été créé sur un domaine différent de celui de votre page. Cela nécessite que le serveur renvoie un en-tête "Access-Control-Allow-Origin" dans ses en-têtes de réponse, mais aucun n'a été renvoyé.

Correction suggérée: Le serveur doit prendre en charge les requêtes CORS et renvoyer un "Access-Control-Allow" approprié -Origin "en-tête avec la ressource. Voir CORS pour XHR dans IE10 pour plus d'informations sur CORS dans les en-têtes de réponse.

Questions:

  1. Je veux savoir si ce message de console est une ERREUR ??
  2. Cela entraînera-t-il des échecs ??
  3. Pourquoi est-ce que je reçois ce message même après avoir défini la valeur '*' 'de l'en-tête de réponse' Access-Control-Allow-Origin '??
  4. La valeur "Access-Control-Allow-Origin" doit-elle être le nom d'origine pour qu'IE10 fonctionne? Je sais que * n'est pas une très bonne option, mais est-ce que IE nécessite un nom d'origine exact ??

enter image description here

enter image description here

J'ai gardé les détails des URL et des cookies cachés dans ces images.

21
lucky

De MSDN :

Les codes d'erreur de sécurité sont sous la forme SEC7xxx [Dans IE]

Relatif à SEC7118:

Une requête XMLHttpRequest a été effectuée sur un domaine différent de celui de votre page. Cela nécessite que le serveur renvoie un en-tête "Access-Control-Allow-Origin" dans ses en-têtes de réponse, mais aucun n'a été renvoyé.

Remarque Ce code d'erreur a été supprimé dans IE11 sur Windows 10. Il reste dans IE11 pour Windows 8.1 et Windows 7.

Il est donc techniquement considéré comme une erreur du point de vue d'IE, mais n'en est certainement pas une (d'où la raison de sa disparition). Access-Control-Allow-Origin est défini sur une ressource, mais n'est pas nécessairement renvoyé avec la demande. Si une ressource spécifiée n'a PAS Access-Control-Allow-Origin:* (ou un domaine), la ressource ne serait pas accessible et le serveur retournerait probablement un 503 ou 404 et vous verriez un vrai message d'erreur dans la console similaire au suivant:

XMLHttpRequest ne peut pas charger http://example.com/ . Aucun en-tête "Access-Control-Allow-Origin" n'est présent sur la ressource demandée. L'origine ' http://blog.example.com ' n'est donc pas autorisée à y accéder.

11
twill

J'ai vu cette erreur dans IE11:

SEC7118: XMLHttpRequest for http: // Required Cross Origin Resource Sharing (CORS)

Ajout de ce qui suit à mon .htaccess l'a corrigé:

<IfModule mod_setenvif.c>
    <IfModule mod_headers.c>
        <FilesMatch "\.(cur|gif|ico|jpe?g|png|svgz?|webp)$">
            SetEnvIf Origin ":" IS_CORS
            Header set Access-Control-Allow-Origin "*" env=IS_CORS
        </FilesMatch>
    </IfModule>
</IfModule>

Référence: https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image

0
Kimball