2012-11-20 2 views
10

을 거부한다 이것은 내가 사용하고 아래 코드는 아래 다음과 같이된다. 는 JSP에서 AJAX HTML 콘텐츠 가져XDomainRequest가 액세스를주고하는 것은 오류

<% response.setHeader("Access-Control-Allow-Origin", "*");%> 

코드 :

if ($.browser.msie && window.XDomainRequest) { 

    var xdr = new window.XDomainRequest(); 
    xdr.open("GET", "http://dev01.org:11110/crs/qw/qw.jsp?&_=" + Math.random()); 
    xdr.contentType = "text/plain"; 
    xdr.timeout = 5000; 
    xdr.onerror = function() { 
     console.log('we have an error!'); 
    } 
    xdr.onprogress = function() { 
     console.log('this sucks!'); 
    }; 
    xdr.ontimeout = function() { 
     console.log('it timed out!'); 
    }; 
    xdr.onopen = function() { 
     console.log('we open the xdomainrequest'); 
    }; 
    xdr.onload = function() { 
     alert(xdr.responseText); 
    }; 
    xdr.send(null); 
} else { ...... } 

나는 액세스 오류가 거부되었습니다 얻고 난 같이 JSP에서 설정 한 액세스 제어 헤더가 않습니다. 어떤 도움을 많이 주시면 감사하겠습니다!

http://dev01 ... 

그리고 당신은 HTTP 프로토콜에서이 작업을 수행해야합니다

답변

1

요청은 당신이 요청을하고있는 당신의 예에서 호스팅 페이지

와 같은 체계를 대상으로해야합니다. JS 스크립트가있는 사이트, 경우 : http://dev.org 당신이 할 수 있습니다 : 예를 들어

xhr = new XDomainRequest(); 
xhr.open("GET", "http://dev01.org?p=1"); 

을하지만이 발생합니다 "액세스가 거부되었습니다"

xhr = new XDomainRequest(); 
xhr.open("GET", "https://dev01.org?p=1"); 
0

나의 경험을 XDomainRequest는 Access-Control-Allow-Origin: *을 존중하지 않는다는 것입니다. 대신 도메인을 지정해야합니다. 이것은 동적으로 생성해야하는 경우 HTTP_REFERER 헤더에서 가져올 수 있습니다. 또는 한 도메인의 요청 만 예상하는 경우 수동으로 설정할 수 있습니다. This article might help.

<% response.setHeader("Access-Control-Allow-Origin", "http://dev01.org");%>