日期:2014-05-18  浏览次数:20609 次

向高手发问
request.getHeader("Referer")可以用来得到请求的地址,为什么我在使用的时候,有些IE浏览器可以得到正确的值,而有的IE浏览器得到的却是NULL呢,并且好像用firefox和opera浏览器都得不到值,都是NULL。

------解决方案--------------------
<%=request.getRemoteAddr();%>
这个行不 我也是在网上找到的...
------解决方案--------------------
if(null == request.getHeader("Referer"))
说明是外部链接,也可能是有人盗链。
------解决方案--------------------
你用这个试试看:
request.getRequestURL().toString();
如果你还想得到参数可以用:
request.getQueryString();

我们在地址栏上看到的就是以上两个的连接,即:
request.getRequestURL().toString()+"?"+request.getQueryString();
------解决方案--------------------
怎么都答非所问 挺奇怪关注中。。。。
------解决方案--------------------
如果是IE可能跟版本有关系5.0的可能得不到

------解决方案--------------------
换成小写的试一试?有可能对大小写敏感
我在ie中和firefox中试了都可以的
out.println(request.getHeader("referer"));
------解决方案--------------------
我没遇见过这个问题,不过我倒是有一些想法楼主可以参考以下
出现不能得到Referer属性的情况可能有两种。
第一,用户使用了安全协议
第二,用户的浏览器设置使客户端不发送Referer属性值
------解决方案--------------------
顶楼上 找到一些信息:

Referer表示“链接到这个页面”的URL
而不是表示,浏览器中转到这个页面之前的那个页面
============================
1.从收藏夹链接
这种情况,确实没有Referer
2.单击'主页'或者自定义的地址
同上
3.利用Jscript的location.href or location.replace()
用脚本直接设置location.href和在地址栏输入是一样的,所以,同上
4.在浏览器直接输入地址
同上
5.<%Response.Redirect%>
这个没注意过,可能不同浏览器的处理方式不一样
6.<%Response.AddHeader%>或<meta http-equiv=refresh>转向
这个也没注意过
7.用XML加载地址
如果是用XMLHTTP加载,可以addRequestHeader('Referer',location.herf);来传递Referer给请求的URL。不过大部分程序都没有写这个

Mark~~