Я понимаю, что этот вопрос задан, но в современной практике REST ни одна из предыдущих итераций этого вопроса и их ответов не является точной или достаточной. Требуется окончательный ответ на этот вопрос.
Проблема хорошо известна, IE (даже 11) кэширует запросы AJAX, что на самом деле очень глупо. Все это понимают.
Что не совсем понятно, так это то, что ни один из предыдущих ответов не достаточен. Каждый предыдущий экземпляр этого вопроса на SO отмечен как достаточно отвеченный либо:
1) Используя уникальный параметр строки запроса (например, временную метку unix) для каждого запроса, чтобы сделать каждый URL-адрес запроса уникальным, тем самым предотвращая кеширование.
- или -
2), используя POST вместо GET, поскольку IE не кэширует POST-запросы, кроме как в определенных уникальных обстоятельствах.
- или -
3), используя заголовки "cache-control", переданные сервером.
IMO во многих ситуациях, связанных с современной практикой API REST, ни один из этих ответов не является достаточным или практичным. API REST будет иметь совершенно разные обработчики для запросов POST и GET с совершенно другим поведением, поэтому POST обычно не является подходящей или правильной альтернативой GET. Кроме того, многие API имеют строгую проверку вокруг них и по многочисленным причинам генерируют 500 или 400 ошибок при подаче параметров строки запроса, которые они не ожидают. Наконец, часто мы взаимодействуем с сторонними или иначе негибкими API-интерфейсами REST, где у нас нет контроля над заголовками, предоставленными ответом сервера, и добавление заголовков управления кэшем не входит в нашу компетенцию.
Итак, вопрос:
В этой ситуации действительно ничего не может быть сделано на стороне клиента, чтобы предотвратить I.E. от кеширования результатов запроса AJAX GET?