【发布时间】:2011-05-20 08:44:18
【问题描述】:
我正在开发一个使用 ajax 请求来检索信息的 Firefox 扩展。这是代码:
$.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-request 都保存了一个包含 session-id 的 cookie,所以每次我再次发出请求时,服务器都会发送cookie 中带有 session-id 的会话数据。非常糟糕的行为,我不知道可以通过 ajax 请求创建 cookie。 所以我要解决这个问题所要做的就是一个函数,每次我的参数改变时都会删除这个cookie。再次感谢您的帮助。
【问题讨论】:
-
您尝试过这些建议吗??
-
是的,我现在尝试了这两个建议(由 Molle 博士和 gov 提出),但行为仍然相同。
-
是吗,你在服务器端做缓存吗???
-
我对服务器端所做的事情没有任何影响,但我已经用 SOAP 客户端检查过,回复是正确的。
标签: jquery ajax firefox caching