如何查看jQuerys $ .ajax回调'完成'如果请求成功了?

时间:2014-10-22 12:55:02

标签: jquery ajax

我的ajax complete回调中有一个很大的代码块,我想检查ajax请求是否成功:

$.ajax(function() {
    url: 'http://hostname.com',
    data: myData,
    dataType: 'json',
    complete: function(data) {

        // [... much code ...]

        $('#MyElement').text(<success> ? $.parseJSON(data.responseText) : 'Failed');

        // [... much code ...]
    }
});

我的问题:我想保留我的代码DRY,并且不希望将代码复制到“成功”和“错误”回调中。那么我可以在这里使用什么占位符<success>

2 个答案:

答案 0 :(得分:3)

您可以在设置中使用第二个参数:

complete: function(data, status) { ... }
然后

status将包含以下值之一:

  • &#34;成功&#34;
  • &#34; notmodified&#34;
  • &#34;错误&#34;
  • &#34;超时&#34;
  • &#34;中止&#34;
  • &#34; parsererror&#34;

http://api.jquery.com/jquery.ajax/了解更多信息。

答案 1 :(得分:0)

jQuery ajax()方法没有回调函数作为参数。您应该传递url或对象,或两者都传递。

来自documentation

<强>完整 类型:函数(jqXHR jqXHR,String textStatus)

  

请求完成时要调用的函数(执行成功和错误回调之后)。该函数传递两个参数:jqXHR(在jQuery 1.4.x,XMLHTTPRequest中)对象和一个对请求状态进行分类的字符串(“成功”,“未修改”,“错误”,“超时”,“中止”或“parsererror”)。

您可以通过修改函数来使用第二个参数textStatus,如:

$.ajax({
  url: 'myUrl',
  data: {myData: myData},
  complete: function(data, status) {
    $('#MyElement').text(status=="success"? data : "Failed");
  }
});