正如Javadocs所建議的那樣,JsonpRequestBuilder只能發送GET請求。我需要使用相同的方法發送POST請求(對於使用JSON的跨域請求)。 有沒有人知道任何工作解決方案?我在網上找不到任何起點。GWT:如何使用JSON發送POST跨域請求
在此先感謝
正如Javadocs所建議的那樣,JsonpRequestBuilder只能發送GET請求。我需要使用相同的方法發送POST請求(對於使用JSON的跨域請求)。 有沒有人知道任何工作解決方案?我在網上找不到任何起點。GWT:如何使用JSON發送POST跨域請求
在此先感謝
不能使用JSONP做一個POST - 它所做的就是插入<script src="...">
標籤,瀏覽器觸發關閉的GET請求。
也許你正在尋找的是CORS,但只有FF 3.5,IE 8和Safari 4以及更新版本才支持。服務器也必須支持它。
否則,您將不得不從您的服務器代理到其他域。
的Google APIs Library for GWT解決了這個問題,通過使用Shindig項目的gadgets.rpc功能發送跨框架消息在頁面指向一個iframe
到頁面你的服務器上(發送跨域GWT-RPC調用)試圖溝通。該iframe
是發出請求的那個,並且當它收到響應時,它會發回另一個跨幀消息。
擴展此功能以使用常規XHR請求(使用POST方法)而不是GWT-RPC請求應該是相當直接的。
感謝您的建議,但由於此任務的時間有限,我決定繼續使用GET。 – adranale 2010-09-03 11:00:51
我也遇到過這個問題,爲了讓它正常工作,我不得不實施一些古怪的方案。幸運的是,我控制着服務器和客戶端。
POST調用定義了一個名爲'src'的URL參數,其中包含一些隨機字符串。當我POST到服務器時,數據會發送到服務器,但我無法獲得響應。
發生什麼情況是服務器在弱緩存中用'src'鍵緩存POST響應。
然後,在POST完成相同的'src'鍵後,我立即執行JSONP get調用,並獲取結果。
這不是很漂亮,但它的工作原理。
謝謝,你的建議看起來很有希望。但由於時間有限,我決定繼續使用GET。 – adranale 2010-09-03 10:59:39
你忘了提及Chrome 3或更新版本。如果它有幫助,我已經更新了CORS維基百科文章,並提供了幾天前我收集的有關瀏覽器支持的更多詳細信息。 – ssokolow 2010-09-19 05:11:47