我在这里需要一些建议或者一些解释.我有一个jquery ajax调用,
$.ajax({
type: "GET",
url: base_url+'/ajax/fetch/counts/',
dataType: 'json',
data: {},
error: function(xhr, error){
console.debug(xhr); console.debug(error);
},
success: display_counts
});
Run Code Online (Sandbox Code Playgroud)
它工作正常.我的success
回调在响应时正确触发.但是,我注意到的是error
每次都会触发我的回调,即使我的调用返回成功状态200.在上面的error
回调中,我看到该对象xhr.status
是200.
任何人都可以解释什么是错的,或者这里发生了什么?error
只有当我有404或非200响应时才会触发回调.我的假设是否正确?
谢谢.
pal*_*aѕн 31
只是一个建议,尝试使用$ .ajaxSetup()来获取正确的错误,如下所示:
$(function() {
$.ajaxSetup({
error: function(jqXHR, exception) {
if (jqXHR.status === 0) {
alert('Not connect.\n Verify Network.');
} else if (jqXHR.status == 404) {
alert('Requested page not found. [404]');
} else if (jqXHR.status == 500) {
alert('Internal Server Error [500].');
} else if (exception === 'parsererror') {
alert('Requested JSON parse failed.');
} else if (exception === 'timeout') {
alert('Time out error.');
} else if (exception === 'abort') {
alert('Ajax request aborted.');
} else {
alert('Uncaught Error.\n' + jqXHR.responseText);
}
}
});
});
Run Code Online (Sandbox Code Playgroud)
eis*_*eis 28
在http错误上调用错误回调,但如果响应上的JSON解析失败,也会调用错误回调.如果响应代码为200但您仍然被抛出错误回调,那么这可能会发生.
归档时间: |
|
查看次数: |
87367 次 |
最近记录: |