2017-10-15 16 views
1

私はAjax経由で注文フォームをメールで送信しています。 Safariはすべてのブラウザが正常に動作しますが、要求と応答にデータがキャッシュされていることがわかります。どうすればこの問題を解決できますか? Safariフォームでは、キャッシュをクリアした後にのみ送信されるためです。キャッシング防止Ajax

$('#form-constructor').submit(function() { 
     var form_data = $(this).serialize(); 

     $.ajax({ 
     type: "POST", 
     url: "data/constructor.php", 
     data: form_data, 
     cache: false, 
     success: function() { 
       document.cookie.split(";").forEach(function(c) { document.cookie = c.replace(/^ +/, "").replace(/=.*/, "=;expires=" + new Date().toUTCString() + ";path=/"); }); 
       window.onpageshow = function (event) { 
if (event.persisted) {window.location.reload();}}; 
+0

可能な複製(https://stackoverflow.com/questions/367786/prevent-browser-caching-of -jquery-ajax-call-result) –

答えて

2

あなたのPHPページで乱数を使用してください。この怒鳴るコードで「URL」の値の変更:[jQueryのAJAX呼び出しの結果の防止ブラウザのキャッシュ]の

url: "data/constructor.php?rand=" + Math.random(), 
+0

残念ながら、このメソッドはSafariでは動作しません。 Chromeはすべてうまくいっているが、Safari –

+0

このリンクから問題を見つけることができると思います。[safari math randomはランダムではありません](https://stackoverflow.com/questions/7675557/in-safari-and-i -think-also-ie-7-and-8-math-random-is-not-random) – fatih