我的要求是,我在我的项目中写了很多$ .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();
});
});
});
答案 0 :(得分:1)
请参阅jQuery网站上的beforeSend(jqXHR, settings)。我不知道您使用的是哪个版本的jQuery,但是文档说您可以从false
返回beforeSend
来取消。
答案 1 :(得分:0)
您可以使用回调中的第二个参数“jqXHR”中止请求:
$( document ).ajaxSend( function( event, jqXHR, ajaxOptions )
{
jqXHR.abort(); // aborts the ajax request
} );