在GWT中,为什么要刷新图像的image.setURL(“/ SimpleCaptcha.jpg”)在firefox中不起作用?

时间:2013-08-08 15:19:10

标签: image gwt

我正在构建一个系统,让用户输入验证码,&用户可以刷新图像以获取另一个验证码。所以我用这段代码来刷新图像。

    captchaImage.setUrl("/SimpleCaptcha.jpg");

它在Chome中运行良好,但在Firefox中无效。

那么还有其他简单的刷新图像的方法可以在GWT中的所有浏览器中使用吗?

3 个答案:

答案 0 :(得分:4)

如果您的新网址与之前的网址相同,则无效。如果您使用相同的文件名生成新图像,一个简单的解决方法是使URL唯一,以便强制浏览器重新加载:

captchaImage.setUrl("/SimpleCaptcha.jpg?" + System.currentTimeMillis());

这会使网址显示为"/SimpleCaptcha.jpg?89109801890180130189"

答案 1 :(得分:0)

尝试将生成服务器端的验证码图像保存在Web应用程序下的文件夹中:

  

web应用程序/ generatedcaptcha / SimpleCaptcha.jpg

在GWT java代码中,执行以下操作:

Image image = new Image("http://yourdomain/yourapp/generatedcaptcha/SimpleCaptcha.jpg");

它应该有用。

答案 2 :(得分:0)

/path正在从域中获取绝对路径,表明该文件所在的浏览器为http://domain/SimpleCaptcha.jpg

如果你想使用相对路径,你需要删除斜杠:

captchaImage.setUrl("SimpleCaptcha.jpg");

Chrome之所以有效,是因为它可以测试相对路径和绝对路径。 Firefox不起作用,因为它更严格。