我正在构建一个系统,让用户输入captcha,&用户可以刷新图像以获得另一个captcha单词。所以我用这个代码来刷新图像。
captchaImage.setUrl("/SimpleCaptcha.jpg");
它在Chome中运行良好,但在Firefox中不起作用。
那么,有没有其他简单的方法可以刷新GWT中所有浏览器中可用的图像呢?
如果您的新URL与以前相同,则不会有任何作用。如果您生成具有相同文件名的新图像,一个简单的解决方法是使URL唯一,从而迫使浏览器重新加载:
captchaImage.setUrl("/SimpleCaptcha.jpg?" + System.currentTimeMillis());
这使得URL显示类似"/SimpleCaptcha.jpg?89109801890180130189"
的内容
尝试将服务器端生成的captcha图像保存在web应用程序下的文件夹中:
webapp/generatedcaptcha/SimpleCaptcha.jpg
在GWTjava代码中,执行如下操作:
Image image = new Image("http://yourdomain/yourapp/generatedcaptcha/SimpleCaptcha.jpg");
它应该起作用。
/path
从域中获取的绝对路径指示浏览器文件位于http://domain/SimpleCaptcha.jpg
如果你想使用相对路径,你需要删除斜线:
captchaImage.setUrl("SimpleCaptcha.jpg");
Chrome之所以有效,是因为它同时测试相对路径和绝对路径。Firefox不起作用,因为它更严格。