Internet Explorer 11 не добавляет заголовок Origin в запрос CORS?
моя проблема зависит от нескольких предположений, которые я придерживаюсь.
предположение nr 1: заголовок Origin
на Origin
заголовок требуется браузером для размещения запроса CORS (Cross Origin Resource Sharing).
чтобы инициировать запрос перекрестного происхождения, браузер отправляет запрос с исходный HTTP-заголовок.
первое, что нужно отметить, это то, что действительный запрос CORS всегда содержит заголовок Origin. Этот заголовок Origin добавляется браузером и может не контролируется пользователем.
W3:
если источник URL-адреса запроса не совпадает с исходным URL-адресом origin, установите источник origin в глобальный уникальный идентификатор [..].
предположение nr 2: поддержка Internet Explorer 10+ ПДБС
см.caniuse.com и использовать google для нескольких сотен других источников различных видов, претендующих на поддержку.
предположение nr 3: разные порты-это другое происхождение
ресурсы, использующие разные номера портов, считаются разного происхождения:
два ресурса считаются одного и того же происхождения, если и только если все эти значения являются именно тот же. [..] Отказ-тот же протокол и хост другой порт.
две страницы имеют одинаковое происхождение, если протокол, порт (если один указано), и host одинаковы для обеих страниц.
проблема:
Internet Explorer 11 не отправляет Origin
заголовок при выполнении запроса CORS к тому же домену "localhost", но с использованием разных портов (от 8411 до 8080). Opera, FireFox и Chrome отправляют заголовок Origin. Тем не менее, все продолжают говорить, что CORS поддерживается в Internet Explorer 10+?
2 ответов
определение Internet Explorer "того же происхождения" отличается от других браузеров. Вижу IE исключения раздел документации MDN по политике того же происхождения:
Internet Explorer имеет два основных исключения, когда дело доходит до той же политики происхождения:
- Целевой Зоны: если оба домена находятся в высоконадежной зоне e.g, корпоративные Домены, то те же ограничения происхождения не являются применяется
- порт: IE не включает порт в те же компоненты Origin, поэтому http://company.com:81/index.html и http://company.com/index.html считаются из того же источника и никаких ограничений не применяются.
поэтому, если ваш запрос кросс-происхождения происходит через разные порты или в одной из доверенных зон IE, IE не будет рассматривать запрос как кросс-происхождение и не будет видеть необходимости добавьте .
Я просто случайно наткнулся на сообщает ошибка на связанный с Microsoft сайт это ясно описывает мою проблему. Сотрудники Microsoft быстро пришли к выводу, что:
недостаточно информации для воспроизведения вашего поведения наблюдающий.
с момента их первого комментария и их первая попытка (?), им фактически удалось запустить два разных веб-сервера на разных портах и воспроизвести проблему. В последнем комментарии Microsoft говорится, что они "рассматривают возможность нацеливания исправления в будущем".