31

Вопрос по javascript, referrer – Как вы получаете Url Referer через Javascript включить?

Если я что-то ищу в Google и нажимаю на результат (mytestsite.com), то ссылкой на этот сайт будет URL поиска Google.

Теперь на этом сайте есть JS-файл include, который используется для целей отслеживания. Однако ссылающийся на этот JS-файл запрос ссылается на mytestsite.com ... нет ли у сервера, обрабатывающего JS-запроса, информации о том, что он возник из поиска Google?

2 ответа
5

Тег сценария всегда будет ссылаться на документ

который его использует. Если вы делаете что-то особенное на сервере, вы можете рассмотреть возможность использования сеанса или файлов cookie.

@boomhauer: решения практически одинаковые, разница в том, что я не упомянулdocument.referrer, Моя точка зрения заключалась в том, что сервер не может знать реферер предыдущего сайта, когда запрашивается JS (только когда запрашивается HTML-код), о чем и спрашивал вопрос. Единственное отличие в решении состоит в том, что другой ответ передает реферрер как строку запроса, а не как заголовок запроса. Я обновил свой ответ, чтобы уточнить намерение и решение, но в целом я думаю, что люди неправильно понимают вопрос.

от Andy E

Реферер доступен для другого ответа здесь.

от Brady Moritz

@iamnotmaynard: Хорошее место. Когда я писал этот ответ, большая часть моей работы была нацелена именно на IE 7, который не использует эти запрещенные имена заголовков.

от Andy E

Вторая часть этого ответа неверна, и пример не может работать.referer является одним изЗапрещенные имена заголовков который "не может быть изменен программно".

от iamnotmaynard
88

Мне немного неясно

что вы пытаетесь сделать, но вы можете получить реферер с помощью JavaScript, используя:

document.referrer

... и передать его на сервер в вашем запросе для файла JS. Несколько способов сделать это ... вот один:

<script>
 var e = document.createElement("script");
 e.src = 'someJSfile.js?referrer='+document.referrer;
 e.type="text/javascript";
 document.getElementsByTagName("head")[0].appendChild(e);
</script>

это немного забавно, что вы не отвечаете помечено как правильное.document.referrer - это лучшее

от Sergei Panfilov

Похожие вопросы