2

我有一个简单的页面

$.ajax({
    url: "abc.php",
    type: "POST",
    async: false,
    dataType: 'json',
    data:  { 'json': JSON.stringify(match) , 'source': source} ,
    success: function(response){
        alert("Alert 1");
    }
});



alert("hello");
location.reload();

它总是提醒"hello",我也尝试过,fail:但找不到正确的结果。请在这方面帮助我

4

2 回答 2

3

问题是,一旦您发送请求,您就会重新加载页面 - 无需等待 ajax 请求的响应返回。

解决方案是对 ajax 请求成功/完成回调进行重新加载

$.ajax({
    url: "abc.php",
    type: "POST",
    async: false,
    dataType: 'json',
    data:  { 'json': JSON.stringify(match) , 'source': source} ,
    success: function(response){
        alert("Alert 1");
    }
}).fail(function(xhr, status, error){
    alert('error:' + status + ':' + error+':'+xhr.responseText)
}).always(function(){
    location.reload();
});
于 2013-08-31T17:21:18.533 回答
0

如果这是您的完整代码,那么您就没有时间执行您的 ajax 调用 abc.php。您只是在刷新页面而不等待 ajax 响应。

来自 Jquery doc, Ajax 中的第一个字母代表“异步”,这意味着操作并行发生并且不保证完成的顺序。

于 2013-08-31T17:25:10.840 回答