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
.
- 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
5 Answers
Reset to default 7INFO: 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>