簡體   English   中英

如何通過GWT發送跨站點PUT請求?

[英]How can I send cross site PUT requests through GWT?

我正在使用GAE / GWT創建一個Web應用程序。 前端GUI是Web客戶端,服務器是RESTFUL服務器,都在不同域的GAE中運行。

我正在使用帶有填充的json與服務器進行通信,但是發現我將無法發送PUT / POST / DELETE請求。

我的應用程序將主要用於查詢數據(查詢:85%的情況下,修改數據:15%)。 所有請求將被認證。

我正在考慮以下選項。

1)對於查詢,請使用JsonpRequestBuilder進行修改,以便在Web客戶端服務器端創建一個代理,然后通過該代理訪問REST服務。 使用GWT RPC與該代理進行通信。

2)在我的REST服務(包括那些修改數據的請求)中將每個請求作為GET請求發出,並直接從Web客戶端使用jsonp。

我希望選擇1),但選擇2)的工作似乎較少。

1)應該是我的首選嗎?

2)如果我的所有請求都將通過身份驗證,是否有任何問題。

還有其他簡單的方法可以解決此問題嗎?

問候,

薩提亞

最簡單的解決方案是使用CORS ,它允許您發送兩個不同來源的請求。 但是它並沒有廣泛傳播(請檢查caniuse ),因此,如果您必須支持IE8-9,那么這對於您來說還不夠。

在您的情況下,我將嘗試實現雙重解決方案(例如,CORS +服務器代理)。 如果瀏覽器支持CORS,則直接將請求發送到目標服務器;如果不支持,則通過代理發送請求。

不好意思問一下,但是讓您的客戶端在其他域上運行有什么好處? 據我了解,您客戶的服務器將無能為力...

如果您不是REST后端的“所有者”,則此后端可能應該為第三方應用程序開發一個授權系統,例如oauth2

然后,您的應用程序可以使用安全連接在后端與后端對話。 您可以使用scribe在后端上執行此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM