Safari缓存我的AJAX请求

时间:2014-03-17 16:33:33

标签: javascript jquery ajax safari

我想让我的一个页面在每次用户加载页面时触发一个javascript AJAX调用,即使他回到浏览器历史记录中的页面。所以我把这个函数放在我的jsp中(我使用的是jQuery Mobile):

$(document).on(
        "pageinit",
        "#base-layout",
        function() {
            $.ajaxSetup({ cache: false });
            myFunction(urlEndpoint);   
        });

仅使用此代码和javascript函数:

function myFunction(url) {

    var currentTime = new Date();
    var n = currentTime.getTime();

    var epUrl = url + "?nocache" + n;

    $.ajax({
        url : epUrl,
        dataType: "json",
        method: "post",
        headers : { "cache-control": "no-cache" },
        cache:false,
    }).done(function(data) {
        //do something
    });
}

即使按下后退按钮,我设法让Chrome,Firefox和IE实际启动了ajax调用。但我无法让Safari显示这种行为。无论我尝试什么,它都不会通过我的服务器端功能。

正如您所看到的,我尝试禁用ajax调用的缓存,并通过appendind将当前时间更改端点URL,无效。我甚至试图把

    response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");

在我的控制器方法上,但它也没有工作。回到历史页面时,我无法让Safari调用此功能。

0 个答案:

没有答案