Назад | Перейти на главную страницу

Есть ли способ кэшировать только запрос GET Ajax?

Обычно у меня есть правила конфигурации nginx, которые не позволяют кешировать все XMLHttpRequest:

map $http_x_requested_with $nocache_01 {
    default         0;
    XMLHttpRequest  1;
}

Есть ли способ кэшировать только запрос GET Ajax?

Благодарю за AD7six для подсказки. Теперь мои карты выглядят так.

map $http_x_requested_with$request_method $nocache_01 { default 0; XMLHttpRequestGET 0; ~XMLHttpRequest(PUT|PATH|DELETE|POST) 1; }

Это означает, что XMLHttpRequest (PUT | PATH | DELETE | POST) не будет кэшироваться

fastcgi_no_cache $nocache_01; fastcgi_cache_bypass $nocache_01;

Используйте $ request_method

Это не показано, но предполагается, что в конфигурации есть блок if, например:

if ($nocache_01) {
    ...
}

Вместо этого, объединив эту переменную с методом запроса, возможна более явная проверка, например:

if ($nocache_01$request_method = "1GET") {
    ...
}

Или, например, вообще без карты:

if ($http_x_requested_with$request_method = "XMLHttpRequestGET") {
    ...
}