0

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

String url = "http://www.google.com";
RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode(url));

无论如何我可以完成这项工作吗?谢谢!

4

2 回答 2

1

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

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

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

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

请注意,CORS 几乎可以在浏览器中使用,但对于 IE/8-9,您必须使用XDomainRequest

于 2013-06-27T19:15:21.430 回答
0

您遇到了同源策略限制。基本上,不可能直接向不同的域发出请求。如果您只想按原样显示该网站,则可以使用 iframe 来完成;如果您想发出更具体的请求,那么您将需要使用JSONP之类的东西来执行此操作,但这需要服务器实际支持它。

于 2013-06-30T08:44:40.027 回答