我有一个网络应用程序,通过AJAX请求和发送数据,作为响应,我的服务器端发送HTTP状态代码,具体取决于具体情况。例如,如果用户在登录时尝试登录,我可能会返回400 HTTP status code
。最后我用警报等处理它。
但是处理这些HTTP状态代码变得太重了,因为我正在大量使用AJAX。这意味着我将使用每个AJAX请求重复处理HTTP状态代码,这将导致重复的代码,这是一个不好的做法。
所以,我正在寻找是一种在一个地方处理所有这些错误的方法,所以我只需处理所有400
,401
等相同的代码。
我目前在做什么:
为每个AJAX调用手动处理错误。使用statusCode
中的$.ajax()
。
statusCode: {
500: function(data) {
alert('Some friendly error message goes here.');
}
对于我来说,随着我的网络应用程序的发展,以及我创建更多ajax调用,这似乎有点过分。我会一次又一次地重复这段代码。
目前,我唯一的想法是创建一个可以在AJAX之上工作的函数,例如:
function doAjax(type,url, data, moreVars) {
//this function is just a SIMPLE example, could be more complex and flexible.
$.ajax({
type: type,
url: url,
data: data,
moreOptions:moreVars,
//now handling all status code.
statusCode: {
//handle all HTTP errors from one place.
}
});
}
doAjax("POST", 'mydomain.com/login.php', dataObj);
答案 0 :(得分:11)
您可以使用$.ajaxSetup()
注册全局错误状态处理程序。
说明 :为将来的Ajax请求设置默认值。
示例:
$.ajaxSetup({
statusCode: {
500: function(data) {
alert('Some friendly error message goes here.');
}
}
});