У меня есть сайт на primary.example.com
, который обслуживает страницу, которая содержит файл javascript из other.example.com
, который javascript делает запрос XHR / ajax GET
на other.example.com/data.json
Я думаю, что это запрос CORS, потому что источником должно быть primary.example.com
Поэтому я ожидаю, что запрос data.json
будет включать заголовок Origin
. Браузер должен добавить это в запрос javascript, поскольку он отправляется в домен, отличный от того, с которого была загружена страница.
Все браузеры, на которых я тестировал (Chrome, Firefox, WebKit), делают это , Но, просматривая журналы своего сервера, я вижу много запросов на data.json
, которые были отклонены сервером на other.example.com
, поскольку они не отправили заголовок Origin в запросе. Почему это так?
Редактировать
Я не знаю, относится ли это к делу, но мне просто пришло в голову, что это может быть так: начальная загрузка страницы инициируется перенаправлением 302 из другой сервер.
Полный процесс таков:
На этой диаграмме запрос ➐ является запросом AJAX, который в основном , но не всегда отправляется с заголовком Origin
в запросе.