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

Internet Explorer 11 не добавляет заголовок Origin в запросе CORS?

Моя проблема зависит от нескольких допущений, которые я придерживаюсь.

Предположение nr 1: Заголовок заголовка

Заголовок Origin требуется браузером для отправки запроса CORS (Cross Origin Resource Sharing).

Wikipedia:

Чтобы инициировать запрос перекрестного происхождения, браузер отправляет запрос с помощью HTTP-заголовок Origin.

Скалы HTML5:

Прежде всего следует отметить, что действительный запрос CORS всегда содержит заголовок Origin. Этот заголовок Origin добавляется браузером и может не контролируется пользователем.

W3:

Если исходный URL-адрес запроса не совпадает с исходным URL-адресом origin, установите источник источника в глобально уникальный идентификатор [..].

Предположение nr 2: поддержка Internet Explorer 10+ CORS

Смотрите caniuse.com и используйте google для нескольких сотен источников разных типов, требующих поддержки.

Предположение nr 3: Различные порты представляют собой другое происхождение

Ресурсы, использующие разные номера портов, считаются разным образом:

Wikipedia

Два ресурса считаются одинаковыми, если и только если все эти значения точно такие же. [..] Неудача - тот же протокол и хост, но другой порт.

Сеть разработчиков Mozilla

Две страницы имеют одинаковое происхождение, если протокол, порт (если один ) и хост одинаковы для обеих страниц.

Проблема:

Internet Explorer 11 не отправляет заголовок Origin при запросе CORS на тот же домен "localhost", но использует разные порты (от 8411 до 8080). Opera, FireFox и Chrome отправляют заголовок Origin. Однако все говорят, что CORS поддерживается в Internet Explorer 10 +?

4b9b3361

Ответ 1

Определение "одного и того же происхождения" в Internet Explorer отличается от других браузеров. См. Раздел Исключения IE документации MDN по политике одного и того же происхождения:

Internet Explorer имеет два основных исключения, когда дело доходит до той же политики происхождения:

  • Целевые зоны:, если оба домена находятся в зоне с высокой степенью доверия, например, корпоративных доменах, тогда не применяются те же ограничения происхождения
  • Порт: IE не включает порт в компоненты Same Origin, поэтому http://company.com:81/index.html и http://company.com/index.html рассматриваются с одного и того же происхождения и не применяются ограничения.

Поэтому, если ваш запрос перекрестного происхождения встречается через разные порты или в одной из доверенных зон IE, IE не будет обрабатывать запрос как кросс-начало и не увидит необходимости добавлять заголовок Origin:.

Ответ 2

Я просто случайно наткнулся на сообщенную ошибку на связанном с Microsoft сайте, в котором четко описывается моя проблема. Сотрудники Microsoft быстро пришли к выводу, что:

Недостаточно информации для воспроизведения вашего поведения наблюдения.

С момента своего первого комментария и их первой попытки (?) им фактически удалось запустить два разных веб-сервера на разных портах и ​​воспроизвести проблему. Последний комментарий от Microsoft говорит, что они "рассматривают возможность установки исправления в будущем".