2016-03-06 74 views
2

好的,首先,我完全知道我們有很多關於這個問題的答案,並且有大量關於這個主題的文章。我在打字前只讀了這些答案:爲什麼默認禁用CORS?

Why is CORS without credentials forbidden?
Is CORS considered bad practice?

等等。我具體情況是這樣的 - 我剛剛成立WebAPI2爲我的實踐項目,前端爲經由一飲而盡瀏覽器同步運行。我不知道如何選擇這些端口,但可以說Web API在端口http://localhost:1234/上運行,並且瀏覽器同步生成網站http://localhost:4321/。所以我通過angular的$ http命中了API,並獲得了着名的CORS錯誤(API控制器方法確實被擊中),所以我猜測這是API返回不允許的。編輯:我通過在問這個Q之前通過NuGet (Article Here)安裝一個CORS for Web API包來解決這個問題,只是爲以後任何需要它的人提供參考。

所以,我在想,如果我部署了這個,任何請求都會被拒絕,除非我丟失了一些東西。或者是否會因爲我不明白的東西而被拒絕?拒絕CORS僅僅是MVC日子的退步?或者有沒有與API的目的?

也許我只是在咆哮,但是這使我感到困惑。

回答

2

CORS基於從API返回的響應頭。拒絕響應請求的API不是,Web瀏覽器明確地禁止處理響應。 API將正常處理請求。

在處理除GET之外的任何事情時,CORS還首先需要對API進行「預檢」請求,以確保允許後續請求。在發回頭文件中,這是Web API nuget包提供的內容。

出於安全目的,默認情況下CORS處於關閉狀態。