GWT Frame无法在Mozilla Firefox或Google Chrome中运行,但在IE中运行良好

时间:2011-02-09 16:12:15

标签: gwt

我正在尝试从服务器下载文件。正常的GWT RPC调用不允许我这样做,因此我写了一个servlet来为我做这个工作。从客户端,我正在创建一个Frame对象,并在其中设置servlet URL,并在我的根面板中添加该框架Object。 当我在IE中执行此操作时,会弹出一个窗口,询问保存/打开文件。 但是当我在Firefox或谷歌Chrome浏览器中执行相同的操作时,没有任何东西在讨价还价。 我的servlet /服务器端没有收到任何请求。 以下是代码片段: -

String servletUrl =“http:// localhost:13080 / Browser / ui / dataExportServlet?level = ZERO”;

          Frame frame = new Frame(servletUrl);
    frame.setVisible(false);
    RootPanel.get().add(frame);

所以,有人可以帮帮我。

3 个答案:

答案 0 :(得分:0)

这可能与同一原产地政策有关。 servlet和webapp都在端口13080上运行吗? 如果它们不同,SOP可能会失败。 如果我理解正确,IE有一个更宽松的策略,所以它可能在那里工作,但不是在chrome。

请参阅http://en.wikipedia.org/wiki/Same_origin_policyCan I disable SOP (Same Origin Policy) on any browser for development?

答案 1 :(得分:0)

在Chrome中,您可以使用开发者工具(CTRL + SHIFT + I)来检查是否正在将IFrame添加到HTML中,以及是否正确设置了帧的来源。您还应该能够看到已经加载到iframe中的内容。

或者,在您的servlet中设置一个断点,以查看Chrome中是否正在点击iframe。

答案 2 :(得分:0)

我得到了这个问题的解决方案。 我删除了框架并添加了以下代码: -

com.google.gwt.user.client.Window.open(url,“CSVDownload”,“”);

现在,这将打开一个新的浏览器窗口,然后我将弹出窗口在所有3个Web浏览器中打开/保存服务器端文件。 (IE,Mozilla FireFox,Chrome)。

非常感谢!!!