最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - IE did not set document.referrer - Stack Overflow

programmeradmin3浏览0评论

I observed it closely by debugging in IE that; IE did set document.referrer if I submit form or click any link but when I redirect to another page using javascript window.location, IE did not set document.referrer.

I observed it closely by debugging in IE that; IE did set document.referrer if I submit form or click any link but when I redirect to another page using javascript window.location, IE did not set document.referrer.

Share Improve this question asked Dec 3, 2012 at 10:18 Muhammad Imran TariqMuhammad Imran Tariq 23.4k47 gold badges129 silver badges191 bronze badges 3
  • 2 maybe you should specify which version of internet explorer you were using in your tests. and just to say it (it will be in every good answer), it's never safe to depend on a referrer because they are very easily spoofed or disabled. You should therefore think about using a different mechanism. I think this question is related to yours. – s1lence Commented Dec 3, 2012 at 10:22
  • No matter what version you are using you cannot get reffer like imran said. try to get on window.open in some page and check it yourself – polin Commented Dec 3, 2012 at 10:39
  • Possible duplicate of IE has empty document.referrer after a location.replace – My Stack Overfloweth Commented Jun 15, 2016 at 19:29
Add a comment  | 

5 Answers 5

Reset to default 7

INFO: Internet Explorer Does Not Send Referer Header in Unsecured Situations

When linking from one document to another in Internet Explorer 4.0 and later, the Referer header will not be sent when the link is from an HTTPS page to a non-HTTPS page. The Referer header also will not be sent when the link is from a non-HTTP(S) protocol, such as file://, to another page.

Microsoft

Try this

<script type="text/javascript" >            
function redirect(url) {
    if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){
        var referLink = document.createElement('a');
        referLink.href = url;
        document.body.appendChild(referLink);
        referLink.click();
    } else {
        location.href = url;
    }
}
</script>

source

IE doesn't Support referrer while you try to send it in pop-up or use window.location.You can send your referrer in many ways. But you will not have it if you try to get it in server side if while change location through a JS popup or change location in JS while using IE, for IE built-in security issue. Check window or window.open property.you can go here

The easiest solution is you can use window.opener.location.href, it works fine in all browsers.

Try this:

<script type="text/javascript">
$("#button").click(function(){

        window.open("about:blank", "win_name", "height=370,width=365, top=50, left=90, scrollbars=yes,resizable=no,menubar=no");
        sForm = '<form action="url.php" method="post" target="win_name">';
        sForm += '</form>';
        //alert(sForm);return;
        $(sForm).appendTo('body').submit();
        return;

     });
</script>
发布评论

评论列表(0)

  1. 暂无评论