Javascript ajax调用在我的通话结束时添加“?= ####”

时间:2015-02-04 04:32:36

标签: javascript jquery ajax caching

我有一个简单的ajax命令调用我的服务器的URL:

$.ajax({ type: "GET", url: "/action" });

我的日志响应显示为/action?_=1423024004825

无论如何要删除它吗?

1 个答案:

答案 0 :(得分:2)

_ = ####是一个缓存破坏者。当您将缓存设置设置为false时,它会将其附加到查询字符串以使其成为浏览器,以便浏览器认为它是新请求而不使用响应的缓存版本。

要阻止它被附加,只需将设置更改为true(现在将使用缓存的响应)

jQuery.ajaxSetup({cache:true});

您还可以通过将缓存设置添加到选项

,在每个请求的基础上设置此项
jQuery.ajax({
    type: "GET", 
    url: "/action",
    cache:true 
});
  

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

     

缓存(默认值:true,false表示dataType'脚本'和' jsonp')

     

类型:布尔值

     

如果设置为false,则会强制请求的页面不被删除   由浏览器缓存。注意:将缓存设置为false仅适用   正确使用HEAD和GET请求。它通过附加工作   " _ = {}时间戳"到GET参数。不需要该参数   其他类型的请求,除了在IE8中对URL进行POST时   这已经被GET要求了。