Реферер XMLHttpRequest и iframe - PullRequest
3 голосов
/ 06 мая 2011

Страница A содержит функцию javascripts, выполняющую XMLHttpRequest. Страница A загружает страницу B в iframe. Страница B выполняет функцию parent.makeRequest(), которая в свою очередь выполняет запрос XHR. Я ожидаю, что источник / источник запроса XHR будет страницей B, однако это страница A. Есть ли способ исправить это?

1 Ответ

5 голосов
/ 06 мая 2011

Вы не можете контролировать значение заголовка Referer.

Некоторые заголовки HTTP можно настроить при выполнении запросов XHR с использованием метода setRequestHeader.Однако заголовок Referer специально исключен.Из спецификаций:

Приведенные выше заголовки [включая Referer] контролируются пользовательским агентом, чтобы позволить ему контролировать эти аспекты транспорта.Это в некоторой степени гарантирует целостность данных.

Однако вы можете установить собственный заголовок.Например, вы можете использовать X-Referer, если это подходит вашему приложению:

xhr.setRequestHeader('X-Referer', location.href);
...