如何处理所有AJAX调用的特定HTTP错误?

我有一个Web应用程序,通过AJAX请求和发送数据,作为响应,我的服务器端发送HTTP状态代码,具体取决于具体情况。 因此,例如,如果用户在登录时尝试登录,我可能会返回400 HTTP status code 。 最后我用警报等处理它。

但处理这些HTTP状态代码变得太重,因为我正在大量使用AJAX。 这意味着我将使用每个AJAX请求重复处理HTTP状态代码,这将导致重复的代码,这是一个不好的做法。

所以, 我正在寻找的是一种在一个地方处理所有这些错误的方法,所以我只使用相同的代码处理所有401等。

我目前在做什么:

为每个AJAX调用手动处理错误。 通过使用$.ajax()statusCode

  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); 

您可以使用$.ajaxSetup()来注册全局错误状态处理程序。

描述 :为将来的Ajax请求设置默认值。

例:

 $.ajaxSetup({ statusCode: { 500: function(data) { alert('Some friendly error message goes here.'); } } });