2013-03-25 42 views
2

我有多個客戶端UI(桌面瀏覽器應用程序,移動設備,平板電腦,報告等)的Web應用程序。所有這些都是html-css-javascript應用程序,通過REST Web服務檢索數據。 大多數Web服務都是跨應用程序使用的,只有少數專用於一個應用程序。使用來自不同子域的相同Web服務的最佳實踐

我想要通過子域分離的應用程序:

webservices.mydomain.com 
www.mydomain.com 
mobile.mydoaim.com 
reporting.mydomain.com 

什麼是這樣做,並保持Ajax調用最好的做法,儘管不同的URL「位置」?

+1

CORS? http://en.wikipedia.org/wiki/Cross-origin_resource_sharing – CBroe 2013-03-25 12:46:45

+0

JSONP看起來像一個選項。移動瀏覽器如何使用它? – 2013-03-26 21:21:32

+1

JSONP基本上只是通過'script'元素嵌入腳本資源 - 與嵌入來自Google Analytics的腳本沒什麼區別。這個腳本就像你嵌入到頁面中的任何其他腳本一樣執行,沒有區分從你自己的域或不同的腳本加載的腳本。由於將腳本資源嵌入到頁面中是「本書中最古老的東西」,我認爲在移動瀏覽器中應該沒有任何問題。 – CBroe 2013-03-27 08:45:32

回答

1

您的AJAX調用可以是託管頁面的服務器,並且在內部該服務器可以對實際的REST服務(mobile.mydomain.com,reporting.mydomain.com等)進行b2b調用。您無需從UI調用跨域網址。只需通過託管該頁面的服務器進行代理即可。

+0

b2b是什麼意思?我想避免代碼複製.. – 2013-03-25 22:22:32

+1

b2b在服務器到服務器。而不是做客戶端 - >後端,我建議做Client-> Web應用程序(它提供你的UI頁面) - >後端。調用一個服務是非常微不足道的,所以我不認爲會有任何主要的代碼重複。 – 2013-03-27 12:20:16

+1

關於JSONP的一個告誡,如果您的服務被其他應用程序使用,而這些應用程序不是通過瀏覽器調用它,則需要在服務中添加邏輯以進行適當的響應。即如果來自移動設備和來自其他地方的xml/json,則爲JSONP。 – 2013-03-27 12:25:28