2011-12-22 7 views
3

Ajax POSTを使用してJSONオブジェクトを更新しましたが、その後JSONオブジェクトを取得しようとしたときにJSONオブジェクトの古いデータが返されました。JQueryで常に新しいデータを取得するためにJSONオブジェクトを削除する

この古いオブジェクトを削除して、常に新しいオブジェクトを取得するにはどうすればよいですか?

POSTメソッドのコードは次のとおりです。

this.sendMessage = function(params) 
{ 
    var url = baseURL+"/direct/forum_message/sendMessage"; 
    if(!params){ 
     params = {'sakai.session': sessionId, 'siteId': siteId, 'toolId':toolId}; 
    } 
    else 
    { 
     params.sessionId = sessionId; 
     params.siteId = siteId; 
     params.toolId = toolId; 
    } 
    var ret = false;  
    var ajaxOptions = { 
     url: url, 
     data: params, 
     type: "POST", 
     traditional: true, 
     async: false, 
     complete: function(data){ 
      if(data.status == 0 || data.status == 200 || data.status == 201) 
      { 
       ret = $.parseJSON(data.responseText); 
      } 
     } 
    }; 
    $.ajax(ajaxOptions); 
    return ret; 
} 

及び方法GET:暗闇の中で私のショットはcacheオプションです

this.getListOfMessagesForSite = function() 
{ 
    var url = baseURL+"/direct/forum_message/getListOfMessagesForSite/"+siteId+".json";    
    var params = (sessionId != "") ? {'sakai.session': sessionId} : null; 
    var ret = null; 
    var ajaxOptions = { 
     url: url, 
     data: params, 
     type: "GET", 
     dataType: "json", 
     async: false, 
     complete: function(data){ 
      if(data.status == 0 || data.status == 200 || data.status == 201) 
      { 
       ret = $.parseJSON(data.responseText); 
      } 
     } 
    }; 
    $.ajax(ajaxOptions); 
    return ret; 
} 
+2

JavaScriptを追加してください。しかし、推測しなければならない - ajaxのポストメソッドは非同期で、ポストが完了する前に '古い'値を使用しています。 –

+0

実際には、POSTメソッドとGETメソッドの両方でasyncがfalseに設定されています。 – Best

答えて

4

を:

キャッシュBoolean
デフォルト:falseに設定した場合true、dataTypeと「スクリプト」と「JSONP」のfalse

、それは ブラウザによってキャッシュされないように要求されたページを強制します。 cacheをfalseに設定すると、クエリ文字列パラメータ "_=[TIMESTAMP]"もURLに追加されます。

+0

GETメソッドのデータ型としてjsonを使用してcacheをfalseに設定しようとしましたが、効果がありませんでした.jsonpのデータ型をjsonpに直接置き換えることはできますか?私たちは "_ = [TIMESTAMP]"をURLに設定しましたか?乾杯 – Best

+0

キャッシュをFalseに設定し、GETメソッドでjsonpからjsonpにデータ型を変更して問題を完全に解決しました:) – Best

関連する問題