2016-09-15 1 views
5

У меня есть две веб-страницы, размещенные на a.example.com и b.example. Каждая веб-страница содержит скрипт с тегом <script>, размещенный в другом домене и обслуживаемый с правильными заголовками CORS.Заголовки заголовков предпросмотра источника и источника в Safari не меняются при навигации пользователя

В определенный момент пользователь переходит от a.example.com в b.example.com.

Safari имеет здесь странное поведение: referrer и origin заголовки в предполетной запроса заполняются a.example.com, что делает сервер отправляет плохое значение в Access-Control-Allow-Origin (и поэтому скрипт не может быть выполнен).

Есть ли способ заставить браузер Safari отправлять правильный заголовок origin в таком виде сценария?

+2

Если то, что описано в вопросе, является точным, это похоже на плохую ошибку в Safari, о которой следует сообщать, а не просто работать. – sideshowbarker

+0

Не могли бы вы добавить полный дамп полученных и отправленных заголовков для запроса на сценарий? Если не для поиска потенциальной ошибки использования, по крайней мере, для возможности репликации? И ** как ** пользователь перемещается? Переадресацией на сервер или на стороне клиента? – Ext3h

ответ

1

Включена ли политика кэша для скрипта: Vary: Origin?

Соответственно есть ли на самом деле второй запрос после перехода на b.example.com?

Если нет, есть вероятность, что Safari фактически служит сценарию из кеша - несмотря на то, что политика Access-Control-Allow-Origin запрещает ей доступ к ресурсу. Что соответствует поведению, если политика кэша настроена неправильно.

+0

Спасибо @ ext3h. Измененный заголовок правильно отправлен, поэтому я считаю, что это не причина. –

0

Казалось, что это действительно ошибка Safari.

Вопрос не воспроизводится на Safari 10.0. Он воспроизводится только в Safari 9.1.1/9.1.3.