내가IE 크로스 도메인 아약스 호출 XDomainRequest 오류
//The javascript code is in a page in my-domain
//it tries to logout from the page in other-domain
$(window).unload(function()
{
if ($.browser.msie && window.XDomainRequest) // IE
{
var xdr = new XDomainRequest();
if (xdr)
{
xdr.onerror = function(){alert("XDR onerror");};
xdr.ontimeout = function(){alert("XDR timeout");};
xdr.onprogress = function(){alert("XDR onprogress");};
xdr.onload = function(){alert("XDR onload");};
xdr.timeout = 5000;
xdr.open("GET", 'http://other-domain/.../j_spring_security_logout');
alert("before send");
xdr.send();
alert("after send");
}
else
alert('Failed to create new XDR object.');
}
else // firefox
$.getJSON('http://other-domain/.../j_spring_security_logout?callback=?', null);
});
그러나, 나는이 순서대로 IE8에서 상자를 변경할 수 iframe에 페이지에서 로그 아웃하려면 다음 코드를 사용해야합니다 : "전에 보내" "XDR onerror", "after send".
I가 서버 측에 다음 코드
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "GET,POST,OPTIONS");
response.setHeader("Access-Control-Max-Age", "360");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
chain.doFilter(req, res);
}
나는 $ .getJSON 및 response.setHeader ("액세스 제어 - 허용 - 원산지를"사용 후 로그 아웃이 파이어 폭스에 대해 완벽하게 작동하는지 확인할 수 있습니다, "*") 등등; 그러나 IE를 사용하면 로그 아웃하지 않습니다.
"For cross-domain, IE requires you to use XDomainRequest instead of XMLHttpRequest.
jQuery doesn't do it so you have to do it manually:"
그래서 내가 XDomainRequest를 추가 :
는 그럼 난이 댓글이 온라인을 발견했다. 그러나 IE8에서 "XDR onerror"라는 경고 대화 상자가 나타납니다. IE에서이 교차 도메인 호출을하려면 무엇을 추가해야합니까?
root = document.body;
myIframe = document.createElement("iframe");
myframe.setAttribute("id", "myFrameId")
myIframe.setAttribute("style", "position: absolute; top: -100px;");
//Making a xget
myIframe.setAttribute("src", "http://other-domain.../j_spring_security_logout?callback=?");
root.appendChild(myframe);
제거하려면 어떻게 :