У меня есть веб-сайт, который экспортирует отчеты в различные форматы файлов, публикуя форму с целью в iframe, а ответ http представляет собой загружаемый файл.
В прошлом мой веб-сервер и ресурсы html / js размещались вместе в одном домене, и все браузеры работали нормально.
Я только что переместил свои статические активы в cdn в другом домене и разрешил этот домен на моем веб-сайте, используя access-control-allow-origin
, x-frame-options allow-from
и content-security-policy frame-ancestors
. Экспорт отчетов прекрасно работает в Chrome и Firefox, но больше не работает ни в браузерах Microsoft Edge, ни в IE.
В Edge трассировка сети средств разработчика показывает, что POST
для сервера является «Ожидание» и никогда не завершается, хотя серверный журнал запроса отсутствует. В IE HTTP POST
работает нормально, но браузер не предлагает сохранить файл. В обоих браузерах инструменты разработчика показывают, что отсутствует HTTP-заголовок Origin
, что крайне важно для настройки ответа x-frame-options
. Это может объяснить, почему IE отказался сохранить файл. Но Edge даже не отправляет запрос.
Мои вопросы:
- Почему бы не передать HTTP
POST
?
- Почему ни один браузер не отправляет заголовок HTTP
Origin
? Я должен полагаться на заголовок Referer
?