我正在开发一个使用 ajax 请求获取信息的 Firefox 扩展程序。这是代码:
当发送到服务器的数据被更改时,我仍然得到相同的结果。我尝试通过在URL中添加"new Date().getTime()"和"cache: false"来避免这种情况,但似乎无效。重新启动浏览器后,我获得了正确的结果。
有人知道问题出在哪里吗?是否存在某种会话处理方式,使得服务器仍然返回旧的响应?
编辑:我进行了大量测试和调试,我认为我找到了问题所在:每个ajax请求都保存了一个包含会话ID的cookie,因此每次我再次发出请求时,服务器都会发送带有cookie中的会话ID的会话数据。真是糟糕的行为,我不知道可以通过ajax请求创建cookie。
因此,我需要编写一个函数,每当参数更改时删除此cookie即可解决问题。再次感谢您的帮助。
$.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,因此每次我再次发出请求时,服务器都会发送带有cookie中的会话ID的会话数据。真是糟糕的行为,我不知道可以通过ajax请求创建cookie。
因此,我需要编写一个函数,每当参数更改时删除此cookie即可解决问题。再次感谢您的帮助。