GWT客户端与公共服务器通信

GWT客户端与公共服务器通信,gwt,web-applications,httprequest,Gwt,Web Applications,Httprequest,我正在创建这个没有服务器端的客户端webapp。例如,我希望这个客户机只需对公共网站发出HTTP请求,如。到目前为止,我已经使用RequestBuilder构建了我的HTTP请求,但是当我在开发模式下运行应用程序时,我的请求的响应代码总是0。在我构建它并对hmtl文件发出请求之后,它给出了相同的结果。在我看来,客户机不是在与公共internet通信,而是在与本地服务器通信(该服务器是空的) 无论如何,我都能做到这一点吗?谢谢 除非在服务器中启用,否则无法向下载页面的其他服务器发出XHR请求 go

我正在创建这个没有服务器端的客户端webapp。例如,我希望这个客户机只需对公共网站发出HTTP请求,如。到目前为止,我已经使用RequestBuilder构建了我的HTTP请求,但是当我在开发模式下运行应用程序时,我的请求的响应代码总是0。在我构建它并对hmtl文件发出请求之后,它给出了相同的结果。在我看来,客户机不是在与公共internet通信,而是在与本地服务器通信(该服务器是空的)


无论如何,我都能做到这一点吗?谢谢

除非在服务器中启用,否则无法向下载页面的其他服务器发出XHR请求

google.com尚未启用CORS,因此您无法使用XHR请求他们的页面

如果您拥有要请求启用CORS的域,那么您有一个java后端的过滤器示例

如果您只是想在ui中显示3party web,可以将其作为iframe插入,但请注意,您无法读取iframe内容,因为它位于不同的域中


请注意,CORS几乎可以在浏览器中工作,但对于IE/8-9,您必须使用
XDomainRequest
您遇到了限制。基本上,不可能直接向不同的域发出请求。如果您只想按原样显示该网站,您可以使用iframe来实现;如果你想提出更具体的请求,那么你需要使用类似的方法,但这需要服务器实际支持它。

@Marconious这句话不是真的
直接向不同的域发出请求是不可能的
。实际上,现在大多数浏览器都支持CORS机制,因此,如果某个域发回某些头文件,您就可以向该域发送ajax请求。但IE8-IE9代替CORS有XDomainRequest。
String url = "http://www.google.com";
RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode(url));