1

I'm sending order form via Ajax to email. All the browsers work correctly accept Safari, as I see it caches data in requests and responses. How could I solve this problem. Because in Safari form is sent only after clearing cache.

    $('#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();}};
  • Possible duplicate of [Prevent browser caching of jQuery AJAX call result](https://stackoverflow.com/questions/367786/prevent-browser-caching-of-jquery-ajax-call-result) – Lasitha Petthawadu Oct 15 '17 at 18:19

1 Answers1

2

Use a random number with your php page. Change value of "url" with this bellow code:

url: "data/constructor.php?rand=" + Math.random(), 
fatih
  • 304
  • 5
  • 15
  • Unfortunately, this method doesn't work on Safari. With Chrome everything is well, but Safari – Anastasia Komarova Oct 18 '17 at 07:22
  • I think you can find out the problem from this link: [in safari math random is not random](https://stackoverflow.com/questions/7675557/in-safari-and-i-think-also-ie7-and-8-math-random-is-not-random) – fatih Oct 18 '17 at 15:38