首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jQuery的ajax调用刷新验证码

问使用jQuery的ajax调用刷新验证码
EN

Stack Overflow用户
提问于 2010-08-16 16:13:14
回答 2查看 9.6K关注 0票数 2

我写了我自己的php captcha脚本,带有一个jpeg头文件,所以我可以说

代码语言:javascript
复制
<img src="captcha.php">

它通过将验证码的值存储到会话变量中来工作。当用户不能阅读它时,我希望它是可刷新的。

我第一次尝试

代码语言:javascript
复制
$("#refresh").click(function() {
    $("#captcha").attr("src","captcha.php");
});

但这当然没有意义,我需要进行一次ajax调用。你们都建议我怎么做呢?

附言:我也试过

代码语言:javascript
复制
$.ajax({
    url: "captcha.php",
    success: function(result) {
        $("#captcha").attr("src",result);
    }
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-16 17:06:09

第一种方法对我来说是有意义的:

代码语言:javascript
复制
$("#refresh").click(function() {
    $("#captcha").attr("src","captcha.php?r=" + Math.random());
});

我假设captcha.php所做的唯一一件事就是将验证码的值存储在会话变量中,并在每次访问时输出验证码图像。

因此,当您再次设置图像的src并向其添加一个查询字符串变量时,将再次向服务器脚本"captcha.php“发送一个请求,该脚本将重新生成验证码并将新值存储在会话变量中。

票数 5
EN

Stack Overflow用户

发布于 2010-08-16 16:53:34

将实际的CAPTHCHA字符串存储在_SESSION变量中是有意义的,但您应该在URL中显式指定状态:

代码语言:javascript
复制
$.ajax({
    url: "captcha.php?generateNew",
    success: function(result) {
        $("#captcha").attr("src","captcha.php?foo="+Math.random());
    }
});

在php文件中:

代码语言:javascript
复制
if(isset($_GET['generateNew']){
    $_SESSION['captchaString'] = generateCaptchaString();
}else{
    dumpCaptchaImage();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3491535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档