보통 자바스크립트로 다음과 같이 페이지 이동을 하게 된다.document.location.href=
"페이지url"
;
그런데 만약 이동하게 되는 페이지에서 referer를 체크하는 로직이 있다면 IE같은 경우
referer가 정상적으로 넘어가지 않을 수 있다. IE의 버그인지 정확히는 잘 모르겠지만 6,7,8 모든버전에서
발생한다. (파폭에서는 발생하지 않음). 이런 경우에는 다음과 같이 dom api로 a태그를 생성해서 request를 보내면 정상적으로 값이 넘어가는 것 같다.
if
(!anchor.click) {
//Providing a logic for Non IE
window.location = url;
return
;
}
anchor.setAttribute(
"href"
, url);
anchor.style.display =
"none"
;
document.getElementById(
"body"
).appendChild(anchor);
anchor.click();
IE will not pass REFERER header when you use window.location
Hi guys... recently I've noticed an issue with IE header when we use window.location construct in Javascript. Generally, most common way of opening a website through Javascript is window.location. But if you're doing any logic based on the header REFERER in the target page, that will not work in IE, since IE browser will not pass REFERER header when you use window.location.
I was in the same position and tried to find a solution for that, here is what I've done to enable the REFERER header for IE.
Here is the general way of invoking:
function general(url)
{
window.location=url;
}
Here is the special way:
function special(url)
{
var anchor = document.createElement("a");
if(!anchor.click) { //Providing a logic for Non IE
window.location = url;
return;
}
anchor.setAttribute("href", url);
anchor.style.display = "none";
document.getElementById("body").appendChild(anchor);
anchor.click();
}
Click here to view other Java script programs that I've developed.
'IT_Programming > JavaScript' 카테고리의 다른 글
자바스크립트 완벽가이드 - 9.5 슈퍼 클래스와 서브 클래스 (0) | 2011.04.29 |
---|---|
[JQuery] Ajax IE 캐싱 문제 (0) | 2011.04.03 |
가우시안 (정규분포) 난수 생성 예제 (0) | 2010.12.14 |
[펌] GET 방식과 POST 방식 (0) | 2010.12.07 |
[펌] document.location.replace()와 document.location.href의 차이 (0) | 2010.07.25 |