Ответ 1
Это отключит кеширование для jQuery ajax:
jQuery.ajaxSetup({ cache: false });
Hy!
My JS запрашивает JSON от контроллера для редактирования существующего объекта, заполненного списка.
Затем представление отправляет фактические значения из раскрывающегося списка автозагрузки, в последнее время новое значение сравнивается со старым, а новые значения сохраняются.
Это как список людей. Когда я загружаю страницу, в моем ddl есть некоторые лица, и я могу добавлять или удалять людей.
Это мой контроллер:
[HttpGet]
public JsonResult JSON(int order)
{
IEnumerable<Person> persons = dataServ.Envolvidos.GetPerson( order )
return this.Json( new { Result = persons }, JsonRequestBehavior.AllowGet );
}
И мой звонок Json:
$.getJSON("/Order/JSON", { order: $("#Id").val() }, function (data) {
...
});
Все идет хорошо, за исключением того, что И.Е. кэширует этот JSON, и когда я отправляю новые значения и снова возвращаюсь к редактированию страницы, вместо новых появляются старые значения. Но новые значения хранятся в базе данных, как и должно быть.
Я тестировал Chrome и Firefox, и после того, как я отредактировал и снова заново отредактировал, он выполнил новый вызов json, и новые значения там, отличные от I.E.
Я что-то упустил? Что я должен сделать для результата JSON, не кэшироваться?
Это отключит кеширование для jQuery ajax:
jQuery.ajaxSetup({ cache: false });
Я считаю, что IE кэширует запросы JSON по умолчанию, в отличие от других браузеров. Вам придется вручную включить соответствующие заголовки, чтобы сообщить, что ответ не будет кэшироваться. Это не повредит существующим браузерам, которые уже не кэшируют, это будет просто более явным.