How to prevent a jQuery Ajax request from caching

2019-01-01 10:21发布

问题:

How do I prevent a jQuery Ajax request from caching in Internet Explorer?

回答1:

You can disable caching globally using $.ajaxSetup(), for example:

$.ajaxSetup({ 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...
});


回答2:

If you set unique parameters, then the cache does not work, for example:

$.ajax({
    url : \"my_url\",
    data : {
        \'uniq_param\' : (new Date()).getTime(),
        //other data
    }});


回答3:

Cache-Control: no-cache, no-store

These two header values can be combined to get the required effect on both IE and Firefox



回答4:

Here is an answer proposal:

http://www.greenvilleweb.us/how-to-web-design/problem-with-ie-9-caching-ajax-get-request/

The idea is to add a parameter to your ajax query containing for example the current date an time, so the browser will not be able to cache it.

Have a look on the link, it is well explained.



回答5:

This is an old post, but if IE is giving you trouble. Change your GET requests to POST and IE will no longer cache them.

I spent way too much time figuring this out the hard way. Hope it helps.