Stop Google chrome from caching AJAX get requests.

Google chrome caches the AJAX get requests and we get unusual behaviour if we add logic based on the AJAX response. This only happens for AJAX get requests. Browser never caches the posts requests.

The issue

We had a redirect based on the AJAX response and the should have changed but Google chrome was caching the response and we were getting the same response for every AJAX get requests. We got into the redirection loop.

The solution

We can stop Google chrome to stop AJAX get requests in multiple ways. Following are some ways to do this:

Using timestamp in the AJAX call parameter

We can add the date or timestamp to the AJAX call to stop browser cache like below:

$.get('/getdata?_=' + new Date().getTime(), function(data) {
    console.log(data); 
});

By setting http header

Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0

By setting cache:false

$.ajax({ 
   type: "GET",
   cache: false, 
});