代码之家  ›  专栏  ›  技术社区  ›  meo

使用.post()处理错误

  •  45
  • meo  · 技术社区  · 14 年前

    我必须修改别人写的项目。因为代码很乱,所以我不能真正更改这个$.Post()(或者用$.Ajax()替换它)。我需要做的是,知道post是否返回其他内容,然后返回json。

    $.post('balbal.html', json, function(data) { ... my coude ... }, 'json')
    

    我可以在console.log中看到post响应。有没有一个简单的方法来检索它?

    3 回复  |  直到 8 年前
        1
  •  13
  •   Phil.Wheeler    14 年前

    有几种方法可以做到这一点,但是如果您没有通过返回的JSON数据对象获得可用的错误响应,那么可以使用 $.ajaxSetup() 为定义默认值 全部的 Ajax通过jquery调用。即使 $.post() 方法本身没有指定错误处理程序或回调, $.ajaxSetup() 方法将捕获任何Ajax错误并执行为其定义的函数。

    或者,还有一个 $.ajaxError() 可以做同样事情的函数。

    请注意,如果JSON响应返回正确,但带有服务器端错误代码,那么这将不起作用。如果您想捕获这些类型的案例,最好使用 $.ajaxComplete() 方法

        2
  •  108
  •   andrewtweber    8 年前

    在发布后立即定义错误回调。注意分号只能放在末尾。

    $.post('balbal.html', json, function(data) {
        // ... my code ...
    })
    .fail(function(response) {
        alert('Error: ' + response.responseText);
    });
    

    http://api.jquery.com/deferred.fail/

    对于旧版本的jquery(1.8之前的版本) 使用 .error 而是使用相同的语法。

        3
  •  2
  •   Victor    14 年前

    你可以用 $.ajax() ( $.post 是一个以任何方式调用它的快捷方式),并定义错误回调。

    或者,如果你真的不想这样做,打电话给

    $.ajaxError(function(){
       //error handler
    })
    

    在那之前 邮局