我对一些运行 IE8 的(Windows 7 32 位)机器有问题(这个定制版本,以 CO 结尾)......似乎正在发生的事情是我正在进行的一些 ajax 调用没有返回。他们不会引发错误或成功,他们只是不会回来进行处理。实际上,我收回了它,他们这样做了(Fiddler 看到一切都回来了),但似乎与调用相关的 ajax 事件没有被触发。
这是应该能够捕获任何错误或成功的代码。我使用延迟来处理屏幕上显示的微调器,以提供有关正在下载的数据的反馈。同样,我使用 jquery 1.7.2。
$(document)
.ajaxSend( function(e,xhr,opt) {
//for each xhr send, there will be an error or success
//we will hide the spinner in the .always event
var prom = xhr.promise();
prom.always(function() {
commons.ajaxSessionCounts -= 1;
//console.log(opt.url + "~~~RESPONSE");
if ( commons.ajaxSessionCounts <= 0 ) {
if (commons.ajaxSpinner == "nonblock") {
$("#ajaxSpinnerImage").hide();
} else {
$.unblockUI();
}
}
}).fail(function(jqXHR, textStatus, data) {
var errorDetail = jqXHR.responseText;
var errorHTML =
"Error calling " + opt.url
+ "<BR/>"
+ (textStatus || 'Unknown')
+ ": "
+ (data || 'missing data')
+ " - "
+ jqXHR.statusText
+ "<BR/>" + errorDetail;
ShowMessage("AJAX ERROR", errorHTML, true);
});
commons.ajaxSessionCounts += 1;
if (commons.ajaxSpinner == "nonblock") {
$("#ajaxSpinnerImage").show();
//console.log(opt.url + "~~~REQUEST");
} else {
$.blockUI({
theme: true,
baseZ: 15001,
message: '<h3 style="text-align: center">' +
'<img src="../resources/lib/images/ajax-loader.gif" />' +
'<br>Please wait...</h3>' +
(opt.xhrFields && opt.xhrFields.displayMsg ? '<br>' + opt.xhrFields.displayMsg : '')
});
}
});
在某些机器上,我们可以从 IE 工具菜单运行重置 IE 设置并解决问题。不要问为什么,我不知道。但是,在其他一些机器上,该解决方案不起作用。
IE11、IE10、IE9、Chrome、Opera 运行代码没有问题。此外,非定制的 IE8 也没有问题。
我花了几个小时试图弄清楚发生了什么。欢迎任何建议。
非常感谢您查看此内容。