我正在从基于 Java 的包“SimpleCaptcha”中检索验证码图像
在前端,我只是将以下内容放入我的页面,然后我得到了一个验证码图像:
<img src="stickyImg" />
我想使用 javascript 在点击时重新加载此验证码图像。
我试过:
$("#theclickhandler").click(function(){
$("#stickyImg").load('stickyImg', function(response){
$("#stickyImg").attr('src', response);
});
return false;
});
这得到了图像但输出了这样的东西(明显缩短了很多):
<img src="captcha image�PNG �ݚ��L�23U�݆�}$�J����Dy����IEND�B`� ">
对我来说,这看起来像是原始的二进制数据。 我如何让它发挥作用?
最佳答案
图像标签的 src
属性向浏览器指定要加载图像的位置,而不是图像的内容。因此,您将图像的内容塞进了您希望位置所在的位置,这给您带来了垃圾,因为它根本没有意义。
因此,要重新加载图片,您需要告诉浏览器图片地址已更改。仅仅将图像的 src
属性中的位置重写为相同的地址是不够的——这不会告诉浏览器更改任何内容。你可以通过在查询字符串中填充一些随机数据来克服这个问题,比如请求的时间。就像@mikerobi 建议的那样,您可以重写 src
标记,这里修改为在查询字符串中放置时间戳(您的 servlet 几乎肯定会忽略它):
$('#stickyImg').attr('src', 'stickyImg?' + (new Date().getTime()));
关于java - 验证码图像返回二进制数据?如何显示这个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4061646/