阻止 jQuery .load 响应被缓存

14 浏览
0 Comments

阻止 jQuery .load 响应被缓存

我有以下代码对URL进行GET请求:

$('#searchButton').click(function() {
    $('#inquiry').load('/portal/?f=searchBilling&pid=' + $('#query').val());            
});

但是返回的结果并不总是反映出来。例如,我在响应中进行了更改,结果会输出堆栈跟踪,但当我单击搜索按钮时,堆栈跟踪并未出现。我查看了控制ajax响应的基本PHP代码,它具有正确的代码,直接访问页面显示了正确的结果,但是由.load返回的输出是旧的。

如果我关闭浏览器,然后重新打开它,它会起作用一次,然后开始返回过时的信息。我可以通过jQuery控制这个问题,还是需要让我的PHP脚本输出头来控制缓存?

admin 更改状态以发布 2023年5月21日
0
0 Comments

\n\n这里是一个控制每个请求缓存的示例。\n\n

$.ajax({
    url: "/YourController",
    cache: false,
    dataType: "html",
    success: function(data) {
        $("#content").html(data);
    }
});

0
0 Comments

如果你想要基于每个请求控制缓存,你需要使用一个更复杂的函数,比如$.ajax()。或者,如果你想将缓存关闭,只需在你的脚本顶部加入如下代码:

$.ajaxSetup ({
    // Disable caching of AJAX responses
    cache: false
});

0