我有一个像这样的jQuery Ajax脚本:
jQuery(document).ready(function($){
// $('.do-something').click(function (e) {
$(document).on('click','#do-something',function (e) {
e.preventDefault();
var id = $(this).data("id");
$.ajax({
url: "https://www.domain.com/page.php?id=" + id,
type: "GET",
dataType: 'json',
success: function(json) {
if(json.valid == 1) {
$("#hidden-div").show();
}
else {
$("#hidden-error-div").show();
}
},
error: function (xhr, ajaxOptions, thrownError) {
$("#hidden-error-div").show();
},
timeout: 15000
});
});
});
但我感觉我没有正确处理所有潜在的错误。有没有办法处理error
函数中可能同时发生的所有错误,包括超时?
答案 0 :(得分:0)
jQuery有一个很好的全局错误处理程序.ajaxError()
,你可以在本地关闭,属性global
设置为false
,任何请求都没有global
设置为{{ 1}}将触发您之前设置的回调。
至于超时,您可以使用.ajaxSetup()
全局设置它。
有一件事可能会阻塞,它是成功的部分,你检查错误,但你可以隔离检查和错误回调,以便ajaxError和成功调用相同的函数,如果有的东西失败。
您的代码可能看起来像这样
false