0

我面临一个重大问题。当我通过单击“不可读?更改文本”链接更改验证码的图像时。那么在这种情况下,只有 IE8 不改变图像,而其他浏览器支持它。如果有人知道它的原因,请告诉我。我的编码如下。谢谢

<div id="captcha1">
    <img src="captcha.php" id="captcha" />
        <br/>
            <a href="#" onclick="
    document.getElementById('captcha').src='captcha.php?'+Math.random();
    document.getElementById('captcha-form').focus();"
    id="change-image">Not readable? Change text.</a>
</div>
4

2 回答 2

1

好的,通过以下方式更改您的 Cache-Control 标头:

header('Cache-Control: no-cache, no-store, must-revalidate, post-check=0, pre-check=0');

从我读过的内容来看,后检查和预检查是特定于 IE 的。

查看更多文档。关于这个话题:

http://php.net/manual/en/function.session-cache-limiter.php

关于它的工作方式:

在此处输入图像描述

举个例子怎么样?假设 HTTP 服务器发送带有以下标头的图像: Cache-Control: post-check=3600,pre-check=43200 pre-check 和 post-check 都以秒为单位指定时间间隔。我们告诉 IE 缓存提到的图像 12 小时(60 * 60 * 12 秒)。第一个小时(60 * 60 秒)IE 将简单地显示其本地缓存中的图像。然而,在 60 分钟后,我们希望它在后台检查一个较新的,即它会显示缓存的一个,然后进行背景检查。12 小时后,IE 首先检查修改后的图像。

资源

注意:在测试之前从浏览器中清除缓存;)。

于 2013-01-10T14:59:54.430 回答
0

我怀疑是 IE8 缓存问题;那是您的 Math.random() 无法正常工作。看看那里:即使使用 mathrandom,IE8 仍在缓存我的请求

于 2013-01-07T21:36:33.390 回答