2011-09-02 75 views
0

我正在学习GWT的过程中,我目前面临着使用JSONP对特定服务器进行RPC调用的问题。如何制定一个JSONP请求

我想与之通信的服务器提供JSON-RPC服务,要求请求的请求标头为{'Content-Type': 'application/json'},并且包含常规JSON数据的主体,例如:{"params": ["HelloServer"], "method": "server.greeting", "id": 10}

我想知道是否有可能向此服务器发出JSONP请求,因为我认为JSONP是只有解决方法,以GWT的SameOriginPolicy限制。


编辑:为Darin Dimitrov解释,我想我必须坚持JSON作为服务器不提供JSONP服务。建议的SOP解决方法非常完美,建议使用here

回答

1

我不知道是否有可能使JSONP请求到该服务器

若服务器不支持它。下面是服务器响应需要,以支持JSONP修改:

someCallback({"params": ["HelloServer"], "method": "server.greeting", "id": 10}) 

其中someCallback是可以由客户指定的函数的名称。如果您无法控制服务器,并且它不支持JSONP,那么您唯一的机会就是在您的域中编写一个服务器端脚本,它将充当桥梁。然后,您将向此脚本发送AJAX请求,并将其委托给远程域。

+0

我正在使用GWT,实际上我试图使用XML-RPC与服务器进行通信,但是我得到了SOP问题!我想知道如何在GWT中实现你的解决方案,非常感谢你的信息 –

+0

我想我现在得到了,谢谢:) –