Preventing iframe caching in browser

Posted by Zarjay on Stack Overflow See other posts from Stack Overflow or by Zarjay
Published on 2010-04-15T18:40:11Z Indexed on 2010/04/15 18:43 UTC
Read the original article Hit count: 453

Filed under:
|
|
|

How do you prevent Firefox and Safari from caching iframe content?

I have a simple webpage with an iframe to a page on a different site. Both the outer page and the inner page have HTTP response headers to prevent caching. When I click the "back" button in the browser, the outer page works properly, but no matter what, the browser always retrieves a cache of the iframed page. IE works just fine, but Firefox and Safari are giving me trouble.

My webpage looks something like this:

<html>
  <head><!-- stuff --></head>
<body>
  <!-- stuff -->
  <iframe src="webpage2.html?var=xxx" />
  <!-- stuff -->
</body>
</html>

The var variable always changes. Despite the fact that the URL of the iframe has changed (and thus, the browser should be making a new request to that page), the browser just fetches the cached content.

I've examined the HTTP requests and responses going back and forth, and I noticed that even if the outer page contains <iframe src="webpage2.html?var=222" />, the browser will still fetch webpage2.html?var=111.

Here's what I've tried so far:

  • Changing iframe URL with random var value
  • Adding Expires, Cache-Control, and Pragma headers to outer webpage
  • Adding Expires, Cache-Control, and Pragma headers to inner webpage

I'm unable to do any JavaScript tricks because I'm blocked by the same-origin policy.

I'm running out of ideas. Does anyone know how to stop the browser from caching the iframed content?

© Stack Overflow or respective owner

Related posts about iframe

Related posts about browser