https和http 调用过程中请求头 referrer 获取不到的问题

Posted 汤瑞新

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了https和http 调用过程中请求头 referrer 获取不到的问题相关的知识,希望对你有一定的参考价值。

HTTP协议规定:
  1. Clients SHOULD NOT include a Referer header field in a (non-secure) HTTP request if the referring page was transferred with a secure protocol.

解决办法:
1、表单添加一个字段referrer,如果头部没有Referer,则获取表单的这个字段,
     添加js:
  1. <input id="referrer" type="hidden" name="referrer" />
  2. <script type="text/javascript">
  3. document.getElementById("referrer").value = window.location.href
  4. </script>

2、后台:
  1. string urlReferrer = "";
  2. if (Request.UrlReferrer == null)
  3. {
  4. urlReferrer = Request["referrer"];
  5. }
  6. else
  7. {
  8. urlReferrer = Request.UrlReferrer.AbsoluteUri;
  9. }







以上是关于https和http 调用过程中请求头 referrer 获取不到的问题的主要内容,如果未能解决你的问题,请参考以下文章

数据挖掘http请求头中Referer的含义和作用

第19期HTTP请求头referer

HTTP 请求头部 referer

前端面试—Http请求头中Referer的含义和作用

HTTP request header:host, referer, origin的区别

利用nginx“ngx_http_referer_module”模块设置防盗链