SEC7118: XMLHttpRequest CORS - сообщение консоли IE
Я использую запрос CORS POST со всем, что было уделено, как указано @http://www.html5rocks.com/en/tutorials/cors/
Сервер устанавливает заголовок ответа на:
"Access-Control-Allow-Origin": '*', и я вижу это значение заголовка в инструменте разработчика IE.
Но в браузере IE10 я вижу сообщение консоли как "SEC7118: XMLHttpRequest для http://требуется перекрестный поиск ресурсов (CORS).
Когда я проверяю сайт Microsoft, он имеет ниже объяснение.
http://msdn.microsoft.com/en-us/ie/dn423949(v=vs.94).aspx
SEC7118
Описание:
"XMLHttpRequest для [URL] требуется перекрестный источник ресурсов (CORS)".
XMLHttpRequest был добавлен в домен, который отличается от домена вашей страницы. Это требует, чтобы сервер возвращал заголовок "Access-Control-Allow-Origin" в своих заголовках ответа, но один из них не возвращался.
Рекомендуемое исправление:
Сервер должен поддерживать запросы CORS и возвращать соответствующий заголовок "Access-Control-Allow-Origin" с ресурсом. См. CORS для XHR в IE10 для получения дополнительной информации о CORS в заголовках ответов.
Вопросы:
- Я хочу знать, является ли это консольное сообщение ERROR?
- Это приведет к сбоям?
- Почему я получаю это сообщение даже после установки заголовка ответа 'Access-Control-Allow-Origin' на значение '*'??
- Значение "Access-Control-Allow-Origin" должно быть начальным именем для
IE10 работать? Я знаю, что это не очень хороший вариант, но делает ли IE
требуется точное имя происхождения
![enter image description here]()
![enter image description here]()
Я сохранил URL-адрес и данные cookie, скрытые от этих изображений.
Ответы
Ответ 1
Из MSDN:
Коды ошибок безопасности в форме SEC7xxx [в IE]
Относящийся к SEC7118:
XMLHttpRequest был создан для домена, который отличался от домена вашей страницы. Это требует, чтобы сервер возвращал заголовок "Access-Control-Allow-Origin" в своих заголовках ответа, но один не был возвращен.
Примечание. Этот код ошибки был удален в IE11 в Windows 10. Он остается в IE11 для Windows 8.1 и Windows 7.
Таким образом, технически это рассматривается как ошибка с точки зрения IE, но, безусловно, не является ошибкой (следовательно, почему она исчезает). Access-Control-Allow-Origin установлен на ресурсе, но не обязательно отправляется обратно с запросом. Если указанный ресурс НЕ имеет Access-Control-Allow-Origin:*
(или домена), ресурс не будет доступен, и сервер, скорее всего, вернет 503 или 404, и вы увидите истинное сообщение об ошибке в консоли похож на ниже:
XMLHttpRequest не может загрузить http://example.com/. В запрошенном ресурсе отсутствует заголовок "Access-Control-Allow-Origin". Происхождение " http://blog.example.com ", следовательно, не допускается.
Ответ 2
Я видел эту ошибку в IE11:
SEC7118: XMLHttpRequest для http://требуется перекрестный поиск ресурсов (CORS)
Добавление следующего в мой .htaccess
исправлено:
<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>
Ссылка:
https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image
Ответ 3
Я столкнулся с SEC7118
, когда CORS был настроен правильно. Я подтвердил, что запросы завершались статусом 200 с использованием сетевого отладчика. Таким образом, вы можете игнорировать это сообщение, если ваше приложение работает нормально.
Ответ 4
У меня была такая же проблема. Это связано с распространением Internet Explorer сторонних файлов cookie. Вы можете исправить эту проблему, выбрав "Инструменты" > "Свойства обозревателя", а затем перейдите на вкладку "Конфиденциальность". Если вы измените настройку на "Принять все cookie", вы больше не увидите это сообщение.
Более безопасный способ сделать это - нажать кнопку "Сайты" и разрешить использование файлов cookie с вашего сайта.
![enter image description here]()