2011-07-12 22 views
0

我已经创建了自己的验证码,并且将此代码插入我的页面<span class="capch"><img src="captcha.php" /></span>当我使用jQuery的html时,不会刷新验证码

Captcha.php生成一个新字符串并将其存储到$ _SESSION中。这是完美的作品,但是当用户插入一个错误的代码时,我需要刷新这个图像。我这样做:$('.capch').html('<img src="captcha.php" />');

为什么它不显示一个新的代码?它真的应该,不应该?或者我在这里失去了一些东西?

+0

你确定执行'.html()'调用吗?图像是否从浏览器缓存中提供? –

回答

5

var _cb = new Date(); 
$('.capch').html('<img src="captcha.php?v='+_cb.getTime()+'" />')
我会添加一个 ?v=2作为缓存驱动程序,其中“2”是每次更新时递增的数字。即使图像来自一个PHP文件,它仍然可以缓存,因为它的头文件

+1

而不是需要跟踪增加的数字,我只是简单地将它作为一个随机字符串。 – badideas

+0

'?v = <递增数字>'不是一个好选择。如果生成了一些,并刷新页面,则“?v = 2”图像仍将被缓存。 – thirtydot

+0

@ zaphod是更好的主意 – locrizak