Как я могу отключить кеш, когда входящий запрос XHR (ajax) с nginx (а если возможно, для Apache)?Nginx - Отключить кеш для запроса XHR
XHR имеет этот протокол HTTPS заголовок:
X-Requested-With : XMLHttpRequest
Благодарности
Как я могу отключить кеш, когда входящий запрос XHR (ajax) с nginx (а если возможно, для Apache)?Nginx - Отключить кеш для запроса XHR
XHR имеет этот протокол HTTPS заголовок:
X-Requested-With : XMLHttpRequest
Благодарности
для Nginx, пожалуйста, попробовать следующий код,
...
set $no_cache 0;
...
if ($http_x_requested_with ~* 'XMLHttpRequest') {
set $no_cache 1;
}
...
location ~ \.php$ {
...
fastcgi_no_cache $no_cache;
...
}
...
Ссылки: Learn to implement caching in Nginx, fastcgi_no_cache
It is generally a good idea to avoid if
in nginx configuration files whenever possible , Если у вас есть какой-либо способ адаптировать интерфейс, откуда отправляются запросы, попробуйте добавить текущее время в качестве переменной GET (например, myhost/?1475834405
). Поскольку этот URL еще не был запрошен, кеш не будет использоваться.
Параметр fastcgi_no_cache гарантирует, что ответ не будет кэшироваться, если он в противном случае был бы кеширован. Однако, если есть существующий кешированный ответ, он будет отвечать на этот ответ. Если вы хотите убедиться, что это не так, вам нужно добавить 'fastcgi_cache_bypass $ no_cache;'. Комбинация параметров fastcgi_no_cache и fastcgi_cache_bypass дает мелкозернистый контроль поведения кеширования. – Dayo