Как обработать ошибку В $ .get ()

У меня есть код jQuery, в котором я использую, добираются () и называющий некоторый удаленный URL/файл. Теперь я хочу знать то, что лучший способ состоит в том, чтобы обработать ошибки от этого.

То, что я делаю:

   $(document).ready(function() {
        $.ajaxSetup({
            error: function(x, e) {

                if (x.status == 0) {
                    alert(' Check Your Network.');
                } 
                   else if (x.status == 404) {
                alert('Requested URL not found.');

                } else if (x.status == 500) {
                    alert('Internel Server Error.');
                }  else {
                    alert('Unknow Error.\n' + x.responseText);
                }
            }
        });

        $.get("HTMLPage.htm", function(data) {
            alert(data);
            $('#mydiv').html(data);

        });
    });

Это хорошо работает. Но хотите знать, там какой-либо лучший способ сделать это?

ref:http://www.maheshchari.com/jquery-ajax-error-handling/

18
задан changelog 4 February 2011 в 11:25
поделиться

1 ответ

Использование $ .ajaxsetup - глобальный для всех вызовов Ajax. Поскольку функция $ .get не имеет никаких ошибок обратных вызовов, определяя обработчик ошибок в $ .ajaxsetup - единственный способ обрабатывать ошибки. Если вы используете $ .ajax, вы можете определить обработчик ошибок в звонке $ .ajax, подобный этому

$.ajax({
  url: "HTMLPage.htm",
  success: function(data) {
    alert(data);
    $('#mydiv').html(data);        
  },
  error: function(XMLHttpRequest, textStatus, errorThrown) { 
    if (XMLHttpRequest.status == 0) {
      alert(' Check Your Network.');
    } else if (XMLHttpRequest.status == 404) {
      alert('Requested URL not found.');
    } else if (XMLHttpRequest.status == 500) {
      alert('Internel Server Error.');
    }  else {
       alert('Unknow Error.\n' + XMLHttpRequest.responseText);
    }     
  }
});

, это зависит только для этого вызова AJAX, таким образом, что вы можете иметь более конкретные сообщения об ошибках. Но использование глобального обработчика ошибок работает так же хорошо.

Вы можете определить ваши функции за пределами $ (документа). Ready (), как это

$(document).ready(function() {
    $.ajaxSetup({
        error: AjaxError
    });

    $.get("HTMLPage.htm", GetSuccess);
});

function AjaxError(x, e) {
  if (x.status == 0) {
    alert(' Check Your Network.');
  } else if (x.status == 404) {
    alert('Requested URL not found.');
  } else if (x.status == 500) {
    alert('Internel Server Error.');
  }  else {
     alert('Unknow Error.\n' + x.responseText);
  }
}

function GetSuccess(data) {
  alert(data);
  $('#mydiv').html(data);
}
17
ответ дан 30 November 2019 в 08:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: