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.