如何制定JSONP请求

时间:2011-09-02 21:15:29

标签: gwt jsonp

我正在学习GWT,我目前面临使用JSONP对特定服务器进行RPC调用的问题。

我要与之通信的服务器提供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 个答案:

答案 0 :(得分:1)

  

我想知道是否可以向此服务器发出JSONP请求

如果服务器不支持,则不行。以下是为了支持JSONP而需要修改服务器响应的方法:

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

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