我在下面的Microsoft标准中添加了变量,var openRetVal和var sendRetVal ...奇怪的是,他们没有在其中返回任何内容,Microsoft是否也在他们自己的文档中? /强>
我正在处理ajax请求,并且像往常一样,IE是一个难以处理的标本。我发现我可以做一个XDR,而不是做一个AJAX请求。我在chrome中的代码工作,所以我知道目标服务器正在工作,并且在成功请求时会发生什么事情。下面是我的XDR代码段。
if ($.browser.msie && window.XDomainRequest) {
var xdr = new XDomainRequest();
//var webstring = location.protocol +"//"+ location.host +"/" + WEBSERVICE_URL + "/test";
//WEBSERVICE_URL = "webservices/FormDesigner.svc";
var webstring = WEBSERVICE_URL + "/test";
var openRetVal = xdr.open("GET", webstring); //added this var as it supposidly gets a return value from the function call.
xdr.onload = function () {
var JSON = $.parseJSON(xdr.responseText);
if (JSON == null || typeof (JSON) == 'undefined') {
JSON = $.parseJSON(data.firstChild.textContent);
}
//below is my onsuccess call which is called by both successes for IE and NON-IE processes allowing all stuff to be piped into 1 call.
ajax_success(JSON);
};
xdr.ontimeout = function () {
alert("XDR Error. Timeout");
}
xdr.onerror = function () {
alert("XDR Error. Unable to do a Cross Domain Server Request.");
};
var sentRetVal = xdr.send(); //added this var as the function is suppose to return success or error as per microsoft.
}
它总是返回错误,这不是我的目标,当然。我暂时在同一个域内ping某些东西用于测试目的,这就是为什么没有其他东西。就像我说的,它到目前为止与其他浏览器一起工作......我不知道有不正确的格式吗?此测试请求也没有提交数据。
答案 0 :(得分:3)
如果你已经使用jQuery,只需将jQuery用于所有浏览器,那么你就不应该在IE中遇到任何问题。