我在一个基于GWT的项目中工作,我习惯单独发出RPC请求。我尝试使用RequestBuilder创建一个新项目并使用GWT客户端发出跨站点请求,但我无法让它工作。
我对GWT不太满意。所以请任何人都可以告诉我如何创建一个新项目及其设置以及从GWT客户端发出跨站点请求的代码(完全删除RPC调用)..?
我已经浏览了google和stackoverflow,但在此主题上没有完整的内容。这对我希望的每一个人都非常有帮助。
答案 0 :(得分:4)
如果你打算只支持browsers that support CORS(你会注意到,除了IE,至少在IE10发布之前),那么你可以像你一样使用RequestBuilder
或GWT-RPC总是这样
如果您曾使用自定义请求标头,那么服务器必须允许客户端应用程序执行这些跨源请求,方法是发送回适当的Access-Control-Allow-Origin
标头以响应OPTIONS
请求(称为< em>在CORS中预检请求。
如果你想/需要支持IE,并且你必须发出POST
请求,那么你别无选择,只能使用FormPanel
并使用一些技巧将响应传递给客户端(最简单的方法是重定向到与GWT应用程序相同的源页面,将结果传递给查询字符串)。
如果您可以GET
而不是POST
,那么您可以使用JsonpRequestBuilder
(当然还会调整您的服务器代码以使用JavaScript进行回复)
答案 1 :(得分:3)
我们可以通过在响应标头中设置“访问控制允许来源http://myexample.com”来发出跨站点请求。 它将使浏览器可以访问响应。更多信息 https://developer.mozilla.org/en/http_access_control