【发布时间】:2011-06-23 07:03:15
【问题描述】:
我正在尝试在 GWT 中做一些跨站点。
根据GWT:Same Origin Policy我已经添加到模块xml文件中了。
只要我不调用任何 GWT 远程服务(使用 GWT-RPC),它就可以正常工作,但是当我尝试调用任何远程服务时,我没有得到响应!
有人知道如何使用 GWT 远程服务解决 GWT 中的跨站点问题吗?
提前致谢!
【问题讨论】:
标签: gwt gwt-rpc same-origin-policy
我正在尝试在 GWT 中做一些跨站点。
根据GWT:Same Origin Policy我已经添加到模块xml文件中了。
只要我不调用任何 GWT 远程服务(使用 GWT-RPC),它就可以正常工作,但是当我尝试调用任何远程服务时,我没有得到响应!
有人知道如何使用 GWT 远程服务解决 GWT 中的跨站点问题吗?
提前致谢!
【问题讨论】:
标签: gwt gwt-rpc same-origin-policy
Steve 的回答是正确的,但是如果您想在不使用 OAUTH 的情况下要求对服务器交互进行身份验证,则可以考虑另一种选择,这是最好的方法。要点是跨站点链接器不会绕过 SOP,而是允许您将 index.html 托管在与 JS 代码不同的站点上,以便您可以在一台服务器上拥有 JS 代码和 servlet 并加载它们从另一个。要绕过 SOP,您可以使用一种称为 JSON 和填充或 JSONP 的方法。本质上,它所做的是使用脚本标签通过将请求的数据包装在回调中来将外部请求注入环境。为此,您可以使用许多服务器端实现之一,例如 Jersey。 GWT 2 包含一个 JsonpRequestBuilder 对象,它为您完成所有客户端工作,并且可以以与 RequestBuilder 相同的方式使用。教程见this文章。
【讨论】:
如果您想从您的 GWT 应用程序访问其他服务器 (example.com),那么您必须对您的服务器执行 RPC,并且在您的服务器端代码中,您必须创建另一个 HTTP调用您正在寻找的 example.com 页面。
您链接到的关于跨站点链接的页面概述了将<add-linker name="xs"/> 添加到模块文件中,您可以在两台服务器之间拆分您的主机:
【讨论】: