我的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>
?
答案 0 :(得分:3)
您可以在设置中使用第二个参数:
complete: function(data, status) { ... }
然后 status
将包含以下值之一:
答案 1 :(得分:0)
jQuery ajax()
方法没有回调函数作为参数。您应该传递url
或对象,或两者都传递。
<强>完整强> 类型:函数(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");
}
});