2011-09-02 69 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

我想我現在得到了,謝謝:) –