2015-12-17 39 views
0

我有一個MVC 5項目,後端有一個OData V4 Web服務,並且我開始遇到一些困惑檢索數據(而不是視圖)。從ajax調用調用Web服務並從MVC控制器調用Web服務之間的區別

我不確定我是否應該通過ajax或通過使用HTTP客戶端的MVC控制器操作進行Web服務調用。我知道你通常希望在後一種情況下進行一些額外的分離,因爲控制器操作可能不應該直接使用HTTP客戶端調用Web服務,但不管如何。我還應該重申,我的問題與Views/PartialViews無關;我總是調用一個控制器動作來返回這些動作。

當您需要對返回的數據執行額外的工作時,是否有利於通過控制器操作?

如果我只是從Web服務中檢索對象列表,是否有任何一點通過調用控制器操作來執行額外的步驟?

對不起,如果這之前已經回答。我發現了一些模糊的類似問題,但沒有太具體的問題。

謝謝。

回答

0

如果Web服務駐留在您的Web應用程序域以外的域中,那麼嘗試從頁面進行Ajax調用時可能會遇到相同的原始策略問題。基本上這不是問題,而是一種安全功能,其中Web瀏覽器允許網頁A中包含的腳本訪問網頁B中的數據,但前提是這兩個網頁具有相同的原點。起源被定義爲URI方案,主機名和端口號的組合。

如果您有這個問題,您可以嘗試從您的服務器代碼(控制器/服務)訪問Web服務。這也允許你解析返回的響應並轉換爲你的視圖真正想要的另一種格式。如果您訪問的數據不會經常更改,您也可以使用MemoryCache或其他網點緩存解決方案進行緩存。這將爲您節省一些網絡電話並改善您的頁面加載時間。