Spring MVC 3 неверно получает запрос, возвращающий код 304, т.е. - PullRequest
2 голосов
/ 26 января 2012

у меня есть весенний веб-сайт MVC 3 с отображением get на URL site.com/../someItems

проблема в том, что запрос get всегда возвращает Http-код 304 при выполнении из ie 9, чтоэто не должно быть, так как содержание фактически изменено.Даже после отправки запроса на публикацию Spring по-прежнему возвращает код 304 при следующем получении.

Проблема в том, что это нормально работает в chrome и firefox, но в 9, запрос на получение никогда не обновляет элементы послепочтовый запрос.

Кто-нибудь знает, что здесь происходит не так?Почему он не возвращает код 200 вместо 304?

Я использую последнюю версию jquery для выполнения запросов get / post.IE прекрасно выполняет запросы на публикацию, так как я вижу, что обновление происходит в chrome (или если я закрываю, т.е. открываю его снова)

$.get("someItems", function(data){
    $('#someDiv').html(data);
});

Глядя на фактический генерируемый запрос на получение, запрос от firefoxи chrome включает cookie, в то время как запрос от ie не

Ответы [ 3 ]

3 голосов
/ 26 января 2012

Я не смог найти способ отключить кеширование с помощью сокращенной записи, поэтому у меня получилось

$.ajax({
          url: "someItems",
          data: '',
          cache: false,
          success: function(data, textStatus, jqHXR){
              $('#someDiv').html(data);
          }
    });

и это, похоже, решило проблему, и теперь файлы cookie отправляются вместе с запросом.

1 голос
/ 26 января 2012

Это потому, что IE 9 кэширует ваши Ajax-запросы:

http://www.dashbay.com/2011/05/internet-explorer-caches-ajax/

Вы должны использовать технику "CacheBuster":

$.get("someItems? "+ Math.random(), function(data){
    $('#someDiv').html(data);
});

Каждый раз будет создаваться новый запрос.

0 голосов
/ 26 января 2012

Проверьте, что реально публикуется F12 в ie или с помощью инструмента, подобного http://www.ieinspector.com/httpanalyzer/.

Автономная версия ieinspector может захватывать трафик Firefox и IE, поэтому его проще сравнивать. У них есть пробная версия, которую вы можете использовать. Если вы не можете найти проблему, опубликуйте захваченный трафик здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...