IE8(共同定制版本)jquery 1.7.2上的AJAX调用问题

IE8(共同定制版本)jquery 1.7.2上的AJAX调用问题,jquery,ajax,internet-explorer-8,Jquery,Ajax,Internet Explorer 8,我对一些运行IE8的(Windows7 32位)机器有一个问题(这个定制版本,以CO结尾)。。。 似乎正在发生的是,我正在进行的一些ajax调用没有返回。它们不会引发错误或成功,只是不会返回进行处理。 事实上,我把它拿回来,它们确实如此(Fiddler看到一切都回来了),但似乎与调用相关的ajax事件没有被触发 这是应该能够捕获任何错误或成功的代码。我使用延迟来处理屏幕上显示的微调器,以提供有关下载数据的反馈。同样,我使用jquery1.7.2 $(document) .ajaxSend

我对一些运行IE8的(Windows7 32位)机器有一个问题(这个定制版本,以CO结尾)。。。 似乎正在发生的是,我正在进行的一些ajax调用没有返回。它们不会引发错误或成功,只是不会返回进行处理。 事实上,我把它拿回来,它们确实如此(Fiddler看到一切都回来了),但似乎与调用相关的ajax事件没有被触发

这是应该能够捕获任何错误或成功的代码。我使用延迟来处理屏幕上显示的微调器,以提供有关下载数据的反馈。同样,我使用jquery1.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 : '')
                  });            
      }
});
$(文档)
.ajaxSend(功能(e、xhr、opt){
//对于每个xhr发送,都会有一个错误或成功
//我们将在.always事件中隐藏微调器
var prom=xhr.promise();
prom.always(函数(){
commons.ajaxSessionCounts-=1;
//log(opt.url+“~~~响应”);

如果(commons.ajaxSessionCounts解决了这个问题……代码的另一部分中存在一些隐藏的javascript错误,导致ajax事件不再触发。。。 关于javascript错误最有趣的一点是,当Internet Explorer中的“禁用脚本调试”选项处于禁用状态时,这些错误不会冒出来被捕获

此处描述了实际的javascript错误问题(44000个结果):

我仍然不明白为什么在一些机器上运行IE重置设置修复了这个问题。
在任何情况下,都要感谢所有看过这篇文章的人。

即使在您遇到问题时,总是会发生always回调吗?我看不出您在哪里绑定到成功处理程序。当它不起作用时,您是否会看到这一行:
var prom=xhr.promise()不,回调并不总是发生…我在页面初始化时有20个ajax调用,17个工作(回调发生),3个不工作(没有触发任何东西)如果根本没有触发任何内容,则必须发生javascript错误,使用浏览器控制台可以很容易地看到该错误。ajaxSend会对所有调用执行…返回(回调)不要为其中一些启动…页面上的效果是ajaxSessionCounts永远不会返回到0,因此微调器将永远出现…代码完成执行…UI变得响应…然后,当我继续在UI中工作时,另一组ajax调用将工作,然后另一组调用失败。。。