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 に答える