0

IE8 を実行する一部の (Windows 7 32 ビット) マシンに問題があります (このカスタマイズされたバージョンは、CO で終わります)...発生しているように見えるのは、私が行っている ajax 呼び出しの一部が返されないことです。エラーや成功は発生しません。処理のために戻ってこないだけです。実際、私はそれを取り戻します (Fiddler はすべてが戻ってくるのを確認します) が、呼び出しに関連付けられた ajax イベントがトリガーされないようです。

これは、エラーまたは成功をトラップできるコードです。deferreds を使用して、画面に表示されるスピナーを処理し、ダウンロード中のデータに関するフィードバックを提供します。繰り返しますが、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 でも問題はありませんでした。

何が起こっているのかを理解するのに何時間も費やしました。どんな提案でも大歓迎です。

これを見てくれてありがとう。

4

1 に答える 1