最近在寫的Office add-in開發系列中,其中有一個比較共性的問題就是在add-in的用戶端腳本中通路遠端服務時,要特别注意跨域通路的問題。
那麼,如果我們自己寫一個服務,怎麼樣讓他支援CORS呢?我下面用一個例子示範這個過程
1. 使用dotnet new webapi 這個指令建立一個基于dotnet core的項目
2.不要做任何修改,直接運作dotnet run
3.在浏覽器中,輸入 http://localhost:5000/api/values 檢視結果
此時我們這個api其實是不支援跨域通路的,我們可以通過下面的免費的工具進行測試
4.通過簡單的兩句代碼即可讓這個api支援跨域通路
請注意,這一行代碼需要寫在AddMvc之後。
然後在需要暴露出來的API Controller上面啟用CORS
5. 再次測試,我們就可以發現現在這個API已經支援跨域通路了
6.如果是需要給所有的API,都實作這個功能,那麼下面這樣的方式可能更加簡化
7. 如果不想這麼複雜,其實在對應的方法裡面,顯式地修改Response的Headers屬性也是可以的。
Response.Headers.Add("Access-Control-Allow-Origin","*");