0

我有这个 ajax:

$.ajax({
type: "POST",
cache: false,
url: 'update_db.php',
beforeSend: function(){
    $.ajax({
    type: "POST",
    cache: false,
    async: "false",
    dataType: "json",
    url: 'check_db.php',
    success: function(data){
       var nowmod = new Date();
       var lastmod = new Date(data[0].lastmod_date);
       if(nowmod > lastmod){
        //abort here the first ajax call and
                //reload the page after 2.5 sec                                                           
                setTimeout(function(){
             location.reload();}, 2500);

       }                                            
    }
    }); 
},
success: function(data){
  alert("success");
}
}); 

我试图将第一个 ajax 放在 JS var 中并调用

var.abort();

另外,我试过

return false 

在所有情况下,第一个 ajax 调用的成功事件都在起作用:警报“成功”!

我在Stackoverflow上看到过一个案例

beforeSend : function(xhr, opts){
    if(1 == 1) //just an example
    {
        xhr.abort();
    }
},

我的问题是我必须在中止 ajax 调用之前检查数据库。欢迎任何建议。谢谢。

4

1 回答 1

1

你把事情复杂化了,只需发送一个 ajax 请求update_db.phpcheck_db.phpupdate_db.php.

于 2013-08-28T20:04:43.913 回答