在GWT中,为什么image.setURL("/SimpleCaptcha.jpg")刷新图像在Firefox中不起作用?



我正在构建一个系统,让用户输入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不起作用,因为它更严格。

最新更新