如何处理特定的HTTP错误都AJAX调用?(How to handle specific HTTP

2019-07-30 16:03发布

我有一个web应用程序,并请求通过AJAX发送数据,并作为响应,我的服务器端发送HTTP状态码,视情况而定。 因此,例如,如果用户试图登录,而他的记录,我可能返回一个400 HTTP status code 。 最终我与警报等处理它

但处理这些HTTP状态代码变得过于沉重,因为我大量使用AJAX的。 这意味着我会被反复处理HTTP状态代码与每一个Ajax请求,这将导致重复的代码,这是一个不好的做法。

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

目前我在做什么:

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

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

这似乎是对我来说是矫枉过正,因为我的web应用程序开发,并为我创造更多的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);

Answer 1:

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

说明 :对于未来的Ajax请求的默认值。

例:

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


文章来源: How to handle specific HTTP error for all AJAX calls?