title: How to avoid AJAX caching in Internet Explorer 11 when additional query string parameters or using POST are not an option
body: <p>I realize this question has been asked, but in modern REST practice none of the previous iterations of this question nor their answers are accurate or sufficient.  A definitive answer to this question is needed.</p>
  
  <p>The problem is well known, IE (even 11) caches AJAX requests, which is really really dumb.  Everyone understands this.</p>
  
  <p>What is <em>not</em> well understood is that none of the previous answers are sufficient.  Every previous instance of this question on SO is marked as sufficiently answered by either:</p>
  
  <p>1) Using a unique query string parameter (such as a unix timestamp) on each request, so as to make each request URL unique, thereby preventing caching.</p>
  
  <p>-- or --</p>
  
  <p>2) using POST instead of GET, as IE does not cache POST requests except in certain unique circumstances.</p>
  
  <p>-- or --</p>
  
  <p>3) using 'cache-control' headers passed by the server.</p>
  
  <p>IMO in <em>many</em> situations involving modern REST API practice, none of these answers are sufficient or practical.  A REST API will have completely different handlers for POST and GET requests, with completely different behavior, so POST is typically not an appropriate or correct alternative to GET.  As well, many APIs have strict validation around them, and for numerous reasons, will generate 500 or 400 errors when fed query string parameters that they aren't expecting.  Lastly, often we are interfacing with 3rd-party or otherwise inflexible REST APIs where we do not have control over the headers provided by the server response, and adding cache control headers is not within our power.</p>
  
  <p>So, the question is:</p>
  
  <p>Is there really nothing that can be done on the client-side in this situation to prevent I.E. from caching the results of an AJAX GET request?</p>