2012-02-29 13 views
6

更新されたビューを元に戻すようになっているコントローラへのajaxコールがあり、更新されたデータでページを更新できます。しかし、私は304:Not Modifiedヘッダーを取得します。

ajax呼び出しにno-cacheオプションを使用しようとしましたが、要求URLの最後に手動でタイムスタンプを追加しようとしましたが、IE9では機能しませんでした。

これは、キャッシングオプションを設定せずにクロムで完全に機能します。

問題がどこにあるかわからないです。

以下は私が使用したコードです。これは手動でタイムスタンプを追加した後に働いたと思います。 QAは彼女のコンピュータでは動作しないと言いました。

 $.ajax({ 
     url: form[0].action + "?cc="+new Date().getTime(), 
     type: 'POST', 
     cache: false, 
     data: $(form).serialize() 
    }) 
    .success(createFilterCleanup); 

答えて

4

防ぐために、お使いのjQueryの$のアヤックスに次のように設定してみてください。あなたのAJAXリクエストをキャッシュからIE。 これはいつも私のために働いています。

$.ajaxSetup({ cache: false }); 

OR

$.ajax({ type: 'POST', cache: false }); 

http://api.jquery.com/jQuery.ajax/

"falseに設定すると、ブラウザによって要求されたページが強制的にキャッシュされません。 cacheをfalseに設定すると、クエリ文字列パラメータ "_ = [TIMESTAMP]"がURLに追加されます。 「以下

は、他のいくつかの可能な解決策との記事です:http://www.dashbay.com/2011/05/internet-explorer-caches-ajax/

がうまくいけば、これは役立ちます

0

GETの代わりにPOSTメソッドを使用するか、現在のタイムスタンプのようなランダムなダミーパラメータを渡すことは、IEでのキャッシュを防ぐ唯一の堅牢な方法です。 :(

EDITED:よく読み、タイムスタンプがあなたを助けていない追加発見した - あなたはそれを追加しない方法を示すために、小さなコードサンプルをお願いし