spring MVC 3获取请求错误地从ie返回代码304

时间:2012-01-25 20:40:13

标签: jquery ajax spring http spring-mvc

我有一个春季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的请求不包含

3 个答案:

答案 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的流量,因此更容易比较。他们有一个你可以使用的试用版。如果您在此处发现捕获的流量时无法找到问题。