jQuery Ajax Get calls fail in IE (Internet Explorer) but work in Firefox, Chome, Safari.. why?

You may have come across the situation where you are making a jQuery AJAX GET request to update part of your page with changing content, but it never updates or just returns blank content.

This issue has been around a long time, since first use of Ajax calls via XMLHTTP, but still causes headaches for people trying to debug the problem now.

What it actually comes down to is that the ‘Get’ call is working correctly, but Internet

Explorer (IE) caches the response, so you never get the updated results from the server.

What are the options:

  • 1) Use POST rather than GET – although this is not semantically correct, you should only POST when modifying contents on the server, technically there really is not much difference.
  • 2) (Preferred) You can disable caching globally using $.ajaxSetup(), for example:

    $.ajax
    Setup({ cache: false });
    This appends a timestamp to the querystring when making the request. To turn cache off for a particular $.ajax() call, set cache: false on it locally, like this: $.ajax({
    cache: false,
    //other options...
    });