Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery捕获任何ajax错误_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript JQuery捕获任何ajax错误

Javascript JQuery捕获任何ajax错误,javascript,jquery,ajax,Javascript,Jquery,Ajax,我喜欢捕捉任何ajax401未经授权的异常,但不喜欢更改所有ajax查询。是否有一种方法可以更改任何$.ajax调用,如(覆盖任何错误处理程序)?您可以使用全局ajax事件处理程序 您可以这样做: $(function() { $.ajaxSetup({ error: function(jqXHR, exception) { if (jqXHR.status === 401) { alert('HTTP Error

我喜欢捕捉任何ajax
401未经授权的异常,但不喜欢更改所有ajax查询。是否有一种方法可以更改任何$.ajax调用,如(覆盖任何
错误
处理程序)?

您可以使用全局ajax事件处理程序


您可以这样做:

$(function() {
    $.ajaxSetup({
        error: function(jqXHR, exception) {
            if (jqXHR.status === 401) {
                alert('HTTP Error 401 Unauthorized.');
            } else {
                alert('Uncaught Error.\n' + jqXHR.responseText);
            }
        }
    });
});
这将捕获任何
ajax
调用中的错误。

尝试使用
.ajaxError()
作为全局方法。

函数将允许您为ajax调用指定全局选项。但是要小心,因为对
ajaxSetup()
的其他调用将覆盖全局选项,而对
ajax()
方法指定的本地选项将覆盖全局设置


要捕获
401
状态代码,只需添加

  $.ajaxSetup({
    statusCode: {
      401: function(err){
        console.log('Login Failed.', err.responseJSON);
        // or whatever...
      }
    }
  });

在AJAX调用被激发之前的某个地方访问您的页面。

使用谷歌将在几秒钟内为您提供答案:
$.ajaxSetup({statusCode:{401:function(){//这将捕获所有拒绝访问的错误}}})
如果ajax调用在
$等选项中指定了
错误
回调,它将失败。ajax({url:'',error:function(){}})
有时
jqxhr
为空,但palaѕѕѕh解决方案对我有效。无论出于何种原因,当我使用此代码段时,status始终为0。有什么想法吗?
  $.ajaxSetup({
    statusCode: {
      401: function(err){
        console.log('Login Failed.', err.responseJSON);
        // or whatever...
      }
    }
  });