I’m have an action /json that returns json from the server.
Unfortunately in IE, the browser likes to cache this json.
How can I make it so that this action doesn’t cache?
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
Make sure your responses are not telling the browser that the content expires in the future. There are two HTTP headers the control this.
In addition, IE may be revalidating. This means that IE includes some extra information in the request that tell the web server what version of the resource it has in its cache. If the browser’s cached version is current, your server can respond with
304 Not Modifiedand NOT include the content in the responses. “Conditionatl GET requests” include this versioning information. It’s possible that your server is giving 304 responses when it shouldn’t be.There are two sets of headers that control revalidation:
Last-Modified, and ETag are response headers that tell the browser what the version of the resource it is about to receive. If you don’t want browsers to revalidate, don’t set these. If-Modified-Since and If-None-Match are the corresponding request headers that the browser uses to report the version of a stale resource that it needs to revalidate with the server.
There are various tools to see what HTTP headers your server is sending back to the browser. One is the Firefox extension Live HTTP Headers. Another tool, which Steve Sounders recommends is IBM Page Detailer. I haven’t tried this one myself, but it doesn’t depend on the browser that you’re using.