Подтвердить что ты не робот

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, скрытые от этих изображений.

4b9b3361

Ответ 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