天天看點

在dotnet core web api中支援CORS(跨域通路)

最近在寫的Office add-in開發系列中,其中有一個比較共性的問題就是在add-in的用戶端腳本中通路遠端服務時,要特别注意跨域通路的問題。

那麼,如果我們自己寫一個服務,怎麼樣讓他支援CORS呢?我下面用一個例子示範這個過程

1. 使用dotnet new webapi 這個指令建立一個基于dotnet core的項目

​​

在dotnet core web api中支援CORS(跨域通路)

2.不要做任何修改,直接運作dotnet run

3.在浏覽器中,輸入 http://localhost:5000/api/values 檢視結果

在dotnet core web api中支援CORS(跨域通路)

此時我們這個api其實是不支援跨域通路的,我們可以通過下面的免費的工具進行測試

在dotnet core web api中支援CORS(跨域通路)

4.通過簡單的兩句代碼即可讓這個api支援跨域通路

在dotnet core web api中支援CORS(跨域通路)

請注意,這一行代碼需要寫在AddMvc之後。

然後在需要暴露出來的API Controller上面啟用CORS

在dotnet core web api中支援CORS(跨域通路)

5. 再次測試,我們就可以發現現在這個API已經支援跨域通路了

在dotnet core web api中支援CORS(跨域通路)

6.如果是需要給所有的API,都實作這個功能,那麼下面這樣的方式可能更加簡化

在dotnet core web api中支援CORS(跨域通路)

7. 如果不想這麼複雜,其實在對應的方法裡面,顯式地修改Response的Headers屬性也是可以的。

Response.Headers.Add("Access-Control-Allow-Origin","*");

繼續閱讀