我有一个春季MVC 3网站,其中有一个获取映射到网址site.com /../ someItems
问题是,当从ie 9执行时,get请求总是返回Http代码304,这不应该是因为内容实际被修改。即使发送了一个post请求,spring仍会在下一次获取时返回304代码。问题是这在chrome和firefox中运行正常但是在9中,get请求永远不会在post请求之后更新项目。
有谁知道这里可能出现的问题?为什么它不返回代码200而不是304?
我使用最新的jquery版本来执行get / post请求。 IE正在执行帖子请求,因为我可以看到更新发生在chrome上(或者如果我关闭ie再次打开它)
$.get("someItems", function(data){
$('#someDiv').html(data);
});
查看正在生成的实际get请求,来自firefox和chrome的请求包含cookie,而来自ie的请求不包含
答案 0 :(得分:3)
我找不到用速记符号禁用缓存的方法,所以我最终得到了这个
$.ajax({
url: "someItems",
data: '',
cache: false,
success: function(data, textStatus, jqHXR){
$('#someDiv').html(data);
}
});
这似乎已经解决了问题,现在正在随请求发送cookie。
答案 1 :(得分:1)
这是因为IE 9缓存了您的Ajax请求:
http://www.dashbay.com/2011/05/internet-explorer-caches-ajax/
你应该使用“CacheBuster”技术:
$.get("someItems? "+ Math.random(), function(data){
$('#someDiv').html(data);
});
每次都会创建不同的请求。
答案 2 :(得分:0)
检查f12中的F12或使用http://www.ieinspector.com/httpanalyzer/等工具发布的真实内容。
ieinspector的独立版本可以捕获Firefox和IE的流量,因此更容易比较。他们有一个你可以使用的试用版。如果您在此处发现捕获的流量时无法找到问题。