jQuery ajax не вызывает ajaxStop при ошибке 404 - PullRequest
3 голосов
/ 01 марта 2012

Я использую jQuery 1.2.6 (устаревшая версия).

В моей общей конфигурации я установил следующие параметры:

jQuery(document).ajaxStart(blockUI).ajaxStop(jQuery.unblockUI);

У меня есть функция ajax, которая получает файл javascript:

function initWebtrends() {
    console.debug("initWebtrends start");       

    var options = {
        url : "ajax/myjavascript.js",
        success: function(data) {                   
            console.debug("webtrends integration successfully done...");
        },
        error:function(msg) {
            console.debug("error contacting webtrends client component...");                
        }
    };

    jQuery.ajax(options);

    console.debug("initWebtrends stop");
}   

Все прекрасно работает, когда ajax получает ответ правильно: запускаются события ajaxStart и ajaxStop.Но когда я получил ошибку 404, функция обратного вызова ошибки не вызывается, ни событие ajaxStop: в этом случае я не получаю никакой ошибки, но моя страница остается заблокированной, так как запускается ajaxStart и выполняется функция blockUI.

Есть ли способ справиться с такой ситуацией?Я знаю, что в jquery 1.5 есть опция statusCode, но я должен заставить ее работать на моей прежней версии.

С уважением

Massimo

1 Ответ

2 голосов
/ 01 марта 2012

, как указано в комментариях @Massimo Ugues: код состояния отсутствует в jQuery 1.2.6.Он присутствует в jquery> 1.5


, используйте statusCode (присутствует в jquery 1.5 +)

$.ajax({
  statusCode: {
    404: function() {
      alert('page not found');
    }
  }
});

Вы можете взять statusCode на ajaxSetup

 $.ajaxSetup({
  statusCode: {
        404: function() {
          alert('page not found');
        }
      }    
   });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...