2009-08-18 2 views
0

по какой-то причине IE6/7 кэширует вызов ajax, который возвращает набор результатов json.ajax-запрос, который возвращает массив json, IE6/7 кэширует его, а данные не свежие

Моя страница выполняет вызов и возвращает результат json, который затем вводят на страницу.

Как заставить IE6/7 выполнить этот вызов и не использовать кэшированное возвращаемое значение?

ответ

1

Вы можете добавить

Cache-Control: no-cache 

ваших заголовков ответа HTML, когда вы обслуживаете в JSON, чтобы сообщить браузеру, чтобы не кэшировать ответ.

В ASP.NET (или ASP.NET MVC), вы можете сделать это следующим образом:

Response.Headers.Add("Cache-Control", "no-cache"); 
1

вы можете изменить настройки в IE, но проблема, скорее всего, лежит на сервере. Вы не можете выйти и изменить все настройки браузера своих пользователей. Но если вы хотите хотя бы проверить его в своем браузере, перейдите в «Свойства обозревателя» -> «Общие» (вкладка) -> «История поиска» (раздел) -> «Настройки» (кнопка) -> «Каждый раз, когда я посещаю веб-страницу» Убедитесь, что вы верните его, хотя, в какой-то момент.

Чтобы исправить это на сервере, посмотрите на http://www.mnot.net/cache_docs/

Использование завиток (ж/Cygwin) для отладки ваш отличный способ выяснить, что на самом деле отправляется по проводам.

1

Если кэш-контроль не работает для вас (см. Ответ DrJokepu), согласно спецификации, контент из любого URL-адреса с строкой запроса должен быть не кэшируемым, поэтому вы можете добавить к вашему запросу параметр бессмысленного запроса URL. Значение не имеет значения, но если вы действительно хотите быть тщательно вы можете добавить значение века, например .:

var url = "myrealurl?x=" + (new Date()).getTime(); 

Но это хак; на самом деле это должно быть разрешено с соответствующими заголовками кеширования на сервере.

1

В действии контроллера, который возвращает JsonResult, вам нужно указать в заголовки, чтобы избежать кэширования:

ControllerContext.HttpContext.Response.AddHeader("Cache-Control", "no-cache"); 

 Смежные вопросы

  • Нет связанных вопросов^_^