使用ajax刷新我自己的验证码和刷新按钮时出现问题

时间:2010-12-28 01:50:55

标签: jquery ajax

但是它不起作用,我只是让我的图像消失了,我尝试了方法2, 我认为它可以工作但我错了因为我只是显示图像代码而不是新的验证码图像 我堆叠并且混淆了什么方法正好工作来刷新我自己的验证码..

我的代码或方法中的任何错误都不能用于刷新验证码.. 谁能告诉我如何准确刷新验证码?

先谢谢

JQUERY CODE

$('.refresh_captcha').click( function(){
   $.ajax({
      type: 'POST',
      url: 'captcha_mk.php',    
      success: function(data){
        //$('img').attr('src', data);  // METHOD 1 ( I try it and my image is lost )
        $('div').html('<img src=' + data); // METHOD 2 ( display code of image not captcha image)

    }
   });
});

2 个答案:

答案 0 :(得分:2)

这可能是因为captcha_mk.php正在返回实际的图像数据 - 请记住src属性会将URL作为图像文件,而不是实际的图像数据。因此你需要的东西可能是这样的:

$('.refresh_captcha').click(function(){
    $('img').attr('src', 'captcha_mk.php?cache=' + new Date().getTime());
});

我们将一个查询字符串附加到URL的末尾以防止浏览器缓存。

答案 1 :(得分:0)

我真的不知道您使用的是哪个Captcha库,但是试图找出data所持有的内容。还有一个验证码图像的类或ID,并执行:

$('img.myCaptcha').attr('src', data);

阅读如何重新加载securimage验证码库(步骤4)以了解该概念。

P.S:在关闭return false;函数之前不要忘记click以防止默认行为。