我有用 GWT 1.7 编写的应用程序。我有一个页面,将文件上传到位于不同域的远程服务器。因此,当我将文件发布到服务器时,文件会发送到服务器,但是当需要获取响应时,我在以下函数中得到空值:
Servlet:
...
resp.setStatus(HttpServletResponse.SC_CREATED);
resp.getWriter().print("The file was created successfully.");
resp.flushBuffer();
...
GWT:
form.addSubmitCompleteHandler(new FormPanel.SubmitCompleteHandler() {
public void onSubmitComplete(SubmitCompleteEvent event) {
Window.alert(event.getResults());
}
event.getResults() 的 Javadoc 表示如下:
Returns: the result html, or null if there was an error reading it @tip The result html can be null as a result of submitting a form to a different domain.
This is the code example我试图遵循的。它按原样工作,但是当我调用 servlet 时,响应为 null。
顺便说一句,我尝试使用 Firebug 查看 header ,在我看来,servlet 正在发送回响应。我认为这只是 GWT 不喜欢它。有没有解决这个问题的方法,以便我可以在 GWT 中得到回复?
谢谢
最佳答案
不是说显而易见的事情,而是在您发布的引用中正确指出了错误所在:
The result html can be null as a result of submitting a form to a different domain.
看起来您链接到的代码示例位于同一域中,因此它没有违反浏览器的同源策略。
有this workaround但它似乎适用于早期版本的 GWT,并且仅适用于 Firefox。
关于java - GWT 应用程序无法从另一台服务器上的 Servlet 获取 HTTP 响应的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1129409/