문제가 있습니다 ... jQuery ajax를 사용하여 XML을 반환하는 웹 서비스를 호출합니다. jQuery ajax는 ie를 제외한 모든 브라우저에서 훌륭하게 작동합니다.XDomainRequest - 호출하지 않음 ... 아무것도하지 않음
예를 들어 브라우저의 경우 XDomainRequest를 사용하고 있습니다. 여기에 코드입니다 :이 정확한 코드는 다른 URL로 응용 프로그램의 다른 곳에서 잘 작동
if ($.browser.msie && window.XDomainRequest) {
// Use Microsoft XDR
var xdr = new XDomainRequest();
xdr.open("get", theUserUrl);
xdr.timeout = 95000;
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() {
// XDomainRequest doesn't provide responseXml, so if you need it:
var xml2 = new ActiveXObject("Microsoft.XMLDOM");
xml2.async = false;
xml2.loadXML(xdr.responseText);
console.log('do we get any response text at all?: ' + xdr.responseText);
ParseOwnershipObjects(xml2);
//AddServiceRequestsToMap(xml2, map, spinner);
};
xdr.send();
}
.
URL은 괜찮습니다. 정확히 브라우저의 내용을 반환합니다. (jquery ajax 호출이 작동하는 이유). 몇 가지를 참고 :
나는 내 자신의 HTML/자바 스크립트를 다른 사람의 asp.net 프로젝트와 통합하고 있습니다.
global.asax.cs
파일에서
protected void Application_BeginRequest(object sender, EventArgs e)
{
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET,OPTIONS");
}
그래서 나는 그것이 헤더 문제가 있다고 생각하지 않습니다.
내 처리기가 작동하지 않습니다. onprogress, ontimeout, onerror ... 아무것도! 웹 서비스를 JSON으로 변환 할 시간이 없습니다.
의견이 있으십니까?
감사합니다. 실제로 사용하지 않은 'XDomainRequest'- -
XDomainRequest의 필요성을 무효화 한 응답 형식 변경 방법을 명확히 할 수 있습니까? 여전히 교차 도메인입니다, 맞습니까? –
JSON을 사용하면 IE 관련 사례에 XDomainRequest 객체 사용을 회피하고 모든 경우에 jQuery ajax를 사용할 수 있습니다. 도메인 간 문제가 사라집니다. jquery Ajax와 JSON 사용에 대한 자세한 내용은이 답변을 확인하십시오. http://stackoverflow.com/a/8894013/575861 – jdb1a1