我有一個Owin WebAPI2 .NET應用程序,我在Azure的AppService上託管。Azure WebApp Cors不添加Cors標頭
我想添加使用Azure的CORS支持作爲in this article。看起來很簡單,你只需要像這樣將一個Origin站點添加到列表中:http://screencast.com/t/r2ATq4u5
我現在期望響應頭包含這個允許的Origin。
然而,CORS標頭不包含在響應頭時,我使用Fiddler檢查: http://corstestqm.azurewebsites.net/breeze/restaurantsbreeze/basictest
步驟我都試過:
- 剝離出來,從我的解決方案的所有CORS的NuGet庫和我的API項目中的所有CORS代碼痕跡。
- 部署到一個全新的AppService服務
- Enabled Owin Cors AllowAll
這些都沒有任何影響。 (即,響應不包含在Azure中指定的CORS頭)。
我在這裏錯過了一些非常基本的東西嗎?
UPDATE 我更簡化的問題: 在VS2015,我創建了一個新的API項目,並將其推到http://corstestbasicap2.azurewebsites.net/api/values/ 沒有變化(即它不應該啓用CORS)。
然後,我使用Test-Cors tool來擊中該API。它沒有按預期得到CORS錯誤。然後我進入Azure並添加一個虛擬URL(例如http://www.example.com),然後再次嘗試CORS測試。它應該失敗,因爲Azure應該只讓example.com通過。但是,它工作正常。
我再edit CORS again in Azure,並添加http://www.test-cors.org以下http://www.example.com(所以它應該讓無論是通過),現在頭返回Access-Control-Allow-Origin:http://www.test-cors.org
預期。
但這沒有意義?當「http://www.test-cors.org」不在允許的起源中時,前面的呼叫肯定會失敗?它似乎沒有做任何有用的事情?!
約努茨你好,謝謝你,我已經發現,在web.config的工作方式,但我想控制與Azure的應用服務CORS爲每個應用服務插槽都有不同的要求(我知道我可以通過debug webconfigs來完成)。我的問題真的是爲什麼Azure CORS功能不能按預期工作? – Rodney
Hi Rodney,您可以從每個插槽的門戶網站控制Cors標頭:從刀片菜單中選擇yuur應用,插槽和CORS。你試過這個嗎?我在我的回覆中添加了一個圖片 –
Hi Ionut,是的,我已經完成了這個,但它不起作用(這是我的問題所在 - 請參閱我原始問題中的截圖鏈接)。它似乎表現得非常古怪,而且不起作用。 – Rodney