Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery ajax缓存禁用不起作用?_Jquery_Ajax_Firefox_Caching - Fatal编程技术网

jQuery ajax缓存禁用不起作用?

jQuery ajax缓存禁用不起作用?,jquery,ajax,firefox,caching,Jquery,Ajax,Firefox,Caching,我正在开发一个Firefox扩展,它使用ajax请求来检索信息。代码如下: $.ajax({ url: "http://127.0.0.1/foo/bar/Service?wsdl" + new Date().getTime(), beforeSend: function(request) { request.setRequestHeader("SOAPAction", "Group"); }, async: false,

我正在开发一个Firefox扩展,它使用ajax请求来检索信息。代码如下:

$.ajax({
        url: "http://127.0.0.1/foo/bar/Service?wsdl" + new Date().getTime(),
        beforeSend: function(request) { request.setRequestHeader("SOAPAction", "Group"); },         
        async: false,
        cache: false,
        type: "POST",   
        dataType: "xml",
        data: req,
        contentType: "text/xml; charset=\"utf-8\"",
        success: function (data, textStatus, xmlHttpRequest) {
        out = $(xmlHttpRequest.responseXML);
        }
    }); 
当发送到服务器的数据被更改时,我仍然得到相同的结果。我试图通过在URL中添加“new Date().getTime()”和“cache:false”来避免这种情况。这似乎不起作用。重新启动浏览器后,我得到了正确的结果

有人知道问题出在哪里吗? 是否存在某种会话处理,因此服务器仍然返回旧的响应

编辑:我做了很多测试和调试,我想我发现了问题:每个ajax请求都保存了一个包含会话id的cookie,因此每次我再次请求时,服务器都会发送会话数据,其中包含会话id。非常糟糕的行为,我不知道cookies可以通过ajax请求创建。 因此,我要做的一切就是在每次参数更改时删除这个cookie。再次感谢您的帮助。

您能试试这个吗

$(document).ready(function() {
  $.ajaxSetup({ cache: false });
});
尝试与Math.random()配合使用,这样更安全

Date().getTime()与Math.random()一起使用


请在时间戳之前尝试使用符号AND:

http://127.0.0.1/foo/bar/Service?wsdl&" + new Date().getTime()

我想wsdl参数在url中是有意义的,没有符号,你破坏了参数。

你尝试过这些建议吗?是的,我现在尝试了两种建议(Molle博士和gov),但行为还是一样的。是吗,你在服务器端做缓存吗???我对服务器端做的事情没有任何影响,但我已经用SOAP客户端检查过了,回复是正确的。
http://127.0.0.1/foo/bar/Service?wsdl&" + new Date().getTime()