代码之家  ›  专栏  ›  技术社区  ›  codersarepeople

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

  •  2
  • codersarepeople  · 技术社区  · 16 年前

    <img src="captcha.php">
    

    其工作原理是将验证码的值存储到会话变量中。当用户无法读取时,我希望它可以刷新。

    我第一次试过

    $("#refresh").click(function() {
        $("#captcha").attr("src","captcha.php");
    });
    

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

    另外,我也试过了

    $.ajax({
        url: "captcha.php",
        success: function(result) {
            $("#captcha").attr("src",result);
        }
    });
    
    2 回复  |  直到 16 年前
        1
  •  5
  •   ovais.tariq    16 年前

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

    $("#refresh").click(function() {
        $("#captcha").attr("src","captcha.php?r=" + Math.random());
    });
    

    我想只有captcha.php 它将验证码值存储在会话变量中,并在每次访问时输出验证码图像。

        2
  •  0
  •   geon    16 年前

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

    $.ajax({
        url: "captcha.php?generateNew",
        success: function(result) {
            $("#captcha").attr("src","captcha.php?foo="+Math.random());
        }
    });
    

    在php文件中:

    if(isset($_GET['generateNew']){
        $_SESSION['captchaString'] = generateCaptchaString();
    }else{
        dumpCaptchaImage();
    }