AjaxComplete经常调用

php*_*sql 6 javascript ajax jquery

我有这个代码:

$( document ).ajaxComplete(function( event, xhr, settings ) {
    console.log('test');
});
Run Code Online (Sandbox Code Playgroud)

我打开了chrome网络选项卡,我只能看到一个条目(状态200).

但控制台显示:

(28) test
Run Code Online (Sandbox Code Playgroud)

为什么经常这样执行?

Cap*_*dus 1

ajaxComplete当任何请求完成时都会触发,AJAX无论成功与否。
200 status code意味着您的请求已正确执行,但是,正如您在jQuery 文档AJAX中所读到的那样,每次请求完成 时都会触发回调。

因此,您可以检查您的请求重定向到哪个 URL,并仅处理您需要的 URL。

无论如何(只是旁注)我将使用内置的AJAX回调函数complete,如下所示:

$.ajax({
    url: url,
    data: { data },
    complete:function(){ 
        console.log('test'); 
    }
});
Run Code Online (Sandbox Code Playgroud)