即使在Success上,Ajax也没有给出响应

时间:2013-08-31 17:18:30

标签: javascript html ajax jquery

我有一个简单的页面

$.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:,但无法找到正确的结果。 请帮助我这方面

2 个答案:

答案 0 :(得分: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();
});

答案 1 :(得分:0)

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

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