我有一个 aspx 页面,我在该页面上使用 XDomainRequest 对象填充两个 div,其中包含从 AJAX 响应返回的 html。
我使用 Jquery 来获取 div 并在检索到的 List 上执行“each()”
var divs = $("div");
divs.each(function(index) {
if (window.XDomainRequest) {
xdr = new XDomainRequest();
if (xdr) {
xdr.onload = function() {
alert("XDR Response - " + xdr.responseText);
var currentDivID = divs[index].attributes["id"].value;
var selectedDiv = $("div[id='" + currentDivID + "']");
if (xdr.responseText == '') selectedDiv.attr("style", "display:none;");
else selectedDiv.append(xdr.responseText);
};
xdr.open("GET", xdrUrl);
try {
xdr.send();
} catch (e) {
alert(e);
}
} else {
alert('Create XDR failed.');
}
} else {
alert('XDR not found on window object .');
}
}
现在,发生的事情是,我在一个页面上有两个具有不同 ID 的 Div,当此代码在 "$.ready(function(){})" 上运行时,两个请求都异步发送到服务器并进行处理
结果是
1。有时 onload 会在两个 div 结果中获得第二个 div 的响应。
2. IE 只向服务器发送一个请求(我正在使用 fiddler 来查看向服务器发送了哪些请求)。
有人可以指导我代码有什么问题吗?据我所知,XDR 不支持同步调用,异步调用给了我错误的结果。此问题的任何解决方法/提示。