2012-04-27 21 views
1

私のJavaScriptには、サーバー上の情報を保存する「保存」機能があります。この関数は複数回連続して呼び出されます。私は競争状態を形成することに懸念している。この理由から、私は私の呼び出し元関数(save)から状態変数を要求応答関数(save_Succeeded)に渡すことができる方法があることを期待していました。このようにして、どのアイテムが正常に保存されたのかわかります。これを行うためにとにかくありますか?現在、私は以下を持っていますが、状態変数を渡す方法はわかりません。ありがとう!AJAXリクエストレスポンス間の状態情報の受け渡し

function save(item) { 
    $.ajax({ 
    url: getUrl(), 
    type: "POST", 
    data: JSON.stringify(item), 
    contentType: "application/json", 
    success: save_Succeeded 
    }); 
} 

function save_Succeeded(result) { 
    alert("Display Saved Item ID here"); 
} 

答えて

0

もちろん、これは非常に重要です。ここでは私のAJAXの1の例がある呼び出します。

$.ajax({ 
     url: "/phpAJAX/save_data.php", 
     type: "post", 
     data : querystring + "&schema=" + schema + "&table=" + table, 
     success: function(data){ 
      if (data != "Data saved successfully."){ 
       show_dialog(data); 
      }else{ 
       show_dialog(data,"bad"); 
      } 
     } 
    }); 

あなたは

success: function(data) 

を行う場合data変数は、サーバーの応答から返されたデータが含まれています。サーバーの応答を制御して、成功するか失敗するかを制御できます。ここでは、データが「データが正常に保存された」ことを確認するためにチェックしています。エラーが発生していない場合は、そのエラーメッセージが表示されます。

成功した場合、保存されたデータのIDを返すようにサーバーコードを変更しなければならない場合は、data変数に格納されます。

0

completeオプションを使用すると、あなたのajaxコールの状態を取得することもできます。

function save_Succeeded(status, result) { 
    alert("Status ---------> " + status + 
      "Result ---------> " + result 
     ); 
} 

function save(item) { 
    $.ajax({ 
     url: getUrl(), 
     type: "POST", 
     data: JSON.stringify(item), 
     contentType: "application/json", 
     complete : function(xhr, responseText, thrownError) { 
      //request is complete 
      save_Succeeded(xhr.status, responseText); 
     } 
    }); 
} 

save_Succeeded()は次のようになります。このような

関連する問題