случайное число, добавленное в ajax-запросы

#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/