Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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 如何在ajaxStart或ajaxSend中中止AJAX请求?_Javascript_Jquery - Fatal编程技术网

Javascript 如何在ajaxStart或ajaxSend中中止AJAX请求?

Javascript 如何在ajaxStart或ajaxSend中中止AJAX请求?,javascript,jquery,Javascript,Jquery,我的要求是,我在我的项目中写了很多$.post方法。 我想检查每个请求中的会话,并根据会话值, 我想处理我的页面。但我不想修改会话的所有方法($.post), 因此,我想在“ajaxStart或ajaxSend”中检查会话,具体取决于 我想要中止主AJAX调用的响应 我用自己的知识尝试过。下面的示例代码不起作用,因为 $.post是异步的。有人能帮我中止AJAX请求吗 处于ajaxStart或ajaxSend状态 var pp; link=function(id){ var url="http:

我的要求是,我在我的项目中写了很多$.post方法。 我想检查每个请求中的会话,并根据会话值, 我想处理我的页面。但我不想修改会话的所有方法($.post), 因此,我想在“ajaxStart或ajaxSend”中检查会话,具体取决于 我想要中止主AJAX调用的响应

我用自己的知识尝试过。下面的示例代码不起作用,因为 $.post是异步的。有人能帮我中止AJAX请求吗 处于ajaxStart或ajaxSend状态

var pp;
link=function(id){
var url="http://localhost/jqueryui/test.php";
    pp=$.post(url,{"id":id},function(data){
        $("#div"+id).html(data);
    });
}
$(function(){
    $("#loading").ajaxStart(function(){
        alert("Hi start");
        $(this).show();
               var url="http://localhost/jqueryui/test.php";
           $.post(url,{"id":99},function(data){//checking the session
            if(data == "close")
            pp.abort();         
            });
    }); 
});

请参阅jQuery网站。我不知道您使用的是哪个版本的jQuery,但文档中说您可以在发送前从
返回
false
以取消该请求。

您可以使用回调中的第二个参数“jqXHR”中止该请求:

$( document ).ajaxSend( function( event, jqXHR, ajaxOptions )
{
    jqXHR.abort(); // aborts the ajax request
} );

@腐蚀:我同意你的建议。但是我必须对我的代码做更多的修改。因为这个原因,我正在寻找一些替代的解决方案。我确实认为这比试图通过中止ajax调用来破解更可行。这是对ajax调用的浪费