我在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 ...]
}
});
我的问题是:我想保持我的代码干燥,不想把代码复制到"成功"one_answers"错误"回调中。那么,我可以在这里使用什么作为占位符<success>
呢?
您可以在设置中使用第二个参数:
complete: function(data, status) { ... }
status
将包含以下值之一:
- "成功"
- "未修改"
- "错误"
- "超时"
- "中止"
- "parserror"
http://api.jquery.com/jquery.ajax/了解更多信息。
ajax()
方法没有回调函数作为参数。您应该传递url
或一个对象,或者两者都传递。
来自文件:
完成类型:函数(jqXHRjqXHR,字符串文本状态)
当请求完成时(在成功和错误回调执行之后)要调用的函数。该函数传递两个参数:jqXHR(在jQuery 1.4.x中,XMLHTTPRequest)对象和一个对请求状态进行分类的字符串("success"、"notmodified"、"error"、"timeout"、"abort"或"parserror")。
您可以通过修改以下函数来使用第二个参数textStatus
:
$.ajax({
url: 'myUrl',
data: {myData: myData},
complete: function(data, status) {
$('#MyElement').text(status=="success"? data : "Failed");
}
});