#jquery #asp.net #json #asp.net-mvc-4
#jquery ( jquery ) #asp.net #json #asp.net-mvc-4
Вопрос:
Я работаю с asp.net mvc и jquery. Я вызываю действия контроллера из jquery, используя
$.getJSON("/customer/details", function (data) {
// process the data
});
У меня есть кэш вывода, настроенный для моего действия контроллера, но он не работает, так как кажется, что кэш переполняется, поскольку URL-адрес содержит случайное число, например.
https://localhost/customer/details?_=1403629723467
Это заполняется не мной, а фреймворком. Есть какой-нибудь способ, которым я могу остановить добавление этого в ур?
Ответ №1:
Это из-за cache: false
. Это не позволяет браузеру извлекать содержимое из своего кэша и используется для GET
HEAD
запросов amp; .
Вы можете подтвердить — но по понятным причинам я бы не советовал оставлять настройку включенной — вы можете отключить ее, и вы не увидите номер:
$.ajaxSetup({cache:true});
Тип: Логический кэш (по умолчанию: true, false для типов данных ‘script’ и ‘jsonp’)Если установлено значение false, это приведет к тому, что запрошенные страницы не будут
кэшироваться браузером. Примечание: Установка значения cache в false будет
корректно работать только с запросами HEAD и GET. Он работает путем добавления
«_={timestamp}» к получаемым параметрам. Параметр не нужен для
других типов запросов, за исключением IE8, когда POST отправляется на URL
-адрес, который уже был запрошен GET.
Ссылка:
- http://api.jquery.com/jquery.ajax/