ie下面 $_SERVER['HTTP_REFERER'] 取不到值


有个页面跳转 链接是这样的
写了没登录的情况:
点击链接-> 判断登录与否-> 没登录(window.location)跳到 登录页面

服务端通过 $_SERVER['HTTP_REFERER'] 接收 来路域名, 但是IE 下面 取不到值

请问如何解决?

我现在的 解决办法是直接在 跳转的url 里面加上了参数,有别的好办法吗 ?

php JavaScript

多多良 小伞 12 years, 6 months ago

这个纯属ie在作怪,HTTPREFERER在ie下是无法识别window.location的。可以识别的 HTTPREFERER 提交是通过click 触发的事件、a 标签或者是 Form 表单提交的请求。

所以你可以用dom生成一个a标签,然后自动执行 onclick 事件。

建议你别用HTTP_REFERER来获取前传地址,可以在请求url里加个返回地址参数,这样就不用考虑浏览器兼容问题了。

给你一个通过生产a标签来的例子:

function getRefer(url)
{
if(document.all)
{
var referUrl = document.createElement('a');
referUrl.href = url;
document.body.appendChild(referUrl);
referUrl.click();
}
else
{
window.location.href = url;
}
}
絶望だんご answered 12 years, 6 months ago

Your Answer