什么是一次处理所有jquery ajax错误的最佳方法?

时间:2015-03-16 08:33:26

标签: jquery ajax

我有一个像这样的jQuery Ajax脚本:

jQuery(document).ready(function($){
// $('.do-something').click(function (e) {
$(document).on('click','#do-something',function (e) {
  e.preventDefault();
  var id = $(this).data("id");
  $.ajax({
    url: "https://www.domain.com/page.php?id=" + id,
    type: "GET",
    dataType: 'json',
    success: function(json) {
        if(json.valid == 1) {

            $("#hidden-div").show();

        }
        else {

            $("#hidden-error-div").show();

        }
    },
    error: function (xhr, ajaxOptions, thrownError) {

       $("#hidden-error-div").show(); 

    },
    timeout: 15000
  });
});
});

但我感觉我没有正确处理所有潜在的错误。有没有办法处理error函数中可能同时发生的所有错误,包括超时?

1 个答案:

答案 0 :(得分:0)

jQuery有一个很好的全局错误处理程序.ajaxError(),你可以在本地关闭,属性global设置为false,任何请求都没有global设置为{{ 1}}将触发您之前设置的回调。

至于超时,您可以使用.ajaxSetup()全局设置它。 有一件事可能会阻塞,它是成功的部分,你检查错误,但你可以隔离检查和错误回调,以便ajaxError和成功调用相同的函数,如果有的东西失败。

您的代码可能看起来像这样

false