2013-10-23 2 views
4

Internet Explorer 7, 8, 9 브라우저의 경우 C#의 Request.UrlReferrer가 null을 반환합니다. 그 이유는 무엇입니까? 그것의 해결책은 무엇입니까?Request.UrlReferrer가 Internet Explorer 7, 8, 9 브라우저에서 "null"을 반환합니다.

페이지에 "여기를 클릭하십시오"버튼이 있습니다. 버튼을 클릭하면 새 탭에 새 URL 페이지가 열립니다. 페이지를 열 때 Request.UrlReferrer를 사용하여 페이지의 URL을 데이터베이스에 저장합니다.

Firefox, Chrome 등 다른 브라우저의 경우 정상적으로 작동합니다. 그러나 Internet Explorer에서는 작동하지 않습니다.

도와주세요. 미리 감사드립니다.

답변

2

리퍼러는 다양한 경우에 비어있을 수 있습니다. 예를 들어 일부 개인 정보 설정 (정책에 의해 강제 적용) 또는 플러그인은 참조자가 전송되는 것을 막을 수 있습니다. 어떤 방식 으로든 사용자 입력이며 신뢰할 수없는 것입니다.

당신이하고 싶은 것을 설명하고 어떤 코드를 사용했는지를 설명하면 실제로 대답 할 수 있습니다.

+0

페이지에 "여기를 클릭하십시오"버튼이 있습니다. 버튼을 클릭하면 새 탭에 새 URL 페이지가 열립니다. 페이지를 열 때 Request.UrlReferrer를 사용하여 페이지의 URL을 데이터베이스에 저장합니다. –

+0

그런 다음 새로운 페이지의 URL에 매개 변수를 추가하십시오 (예 :'& from = pageX'). 리퍼러만큼 신뢰할 수는 없지만 (사용자가 변경할 수 있음) 브라우저 구성에 관계없이 전송되는 것을 제어 할 수 있습니다. – CodeCaster

+0

매개 변수를 전달할 수없는 경우 어떻게해야합니까? 다른 방법은 무엇입니까? –

1

내가 RND에서 오랫동안 말했듯이 나는 마음 속으로 솔루션을 클릭한다. 나는 단지 코드로 내용을 자세히 설명한다.

document.location.href 또는 window.open을 사용하여 새 창을 열면 IE8 이하에서 Request.UrlReferrer가 null로 IE9 또는 Firefox 또는 Chrome에 없습니다.

이 솔루션은 document.location.href = "/ 역할/색인" 처럼 사용할 이제까지

이다;

js 파일에 아래 함수를 복사하여 붙여 넣기 만하면됩니다.

RedirectURL ("/ Roles/Index");

function RedirectURL(url) { 
var a = document.createElement("a"); 
if (a.click) { 
    // HTML5 browsers and IE support click() on , early FF does not. 
    a.setAttribute("href", url); 
    a.style.display = "none"; 
    document.body.appendChild(a); 
    a.click(); 
} else { 
    // Early FF can, however, use this usual method 
    // where IE cannot with secure links. 
    window.location.href = url; 
    } 
} 

위의 해결 방법으로 문제가 해결되기를 바랍니다.

0

window.open (targetUrl, "_blank") 함수를 사용하여 새 브라우저 탭에서 페이지를 여는 경우 UrlReferrer는 IE에서 null입니다. 실제로이 문제는 Internet Explorer 11에서도 재생할 수 있지만 이전 IE 버전. 다음 자바 스크립트 코드 나 문제 해결을 위해 허용 :

var link = document.createElement("a"); 
link.href = targetUrl; 
link.target = "_about"; 
document.body.appendChild(link); 
link.click(); 

나는 문제가 된 것을 알고 있습니다. 하지만 어쩌면 내 대답이 도움이 될 것입니다.

관련 문제