最近又要寫一個webapi,然后想到了跨域問題,想起上次做的時候研究了好久才成功,這次想起來還是記錄一下,防止以后又花大量的時間去找方法。
關於跨域問題解決方法有以下幾種:
1.JSONP 通過瀏覽器標簽去請求WebApi;避開跨域問題。
2.通過后台模擬Http請求去請求WebApi
3.在服務器端允許跨域。
第一種方法我沒試過,第二種方法通過后端語言發起請求自然是沒有跨域問題的,但是不符合我項目要求,然后就是第三種方法了。使用cros使webapi項目支持不同域名的請求。以前用.net framework 的時候也研究過,照着https://www.cnblogs.com/landeanfen/p/5177176.html 這篇文章的方法運行成功了。
.net core也提供了相應的包Microsoft.AspNetCore.Cors。在安裝完程序包后,我們在Startup.cs 中找到ConfigureServices方法,在其中注冊cros。

然后在Configure方法中使用注冊好的服務。

這樣就可以解決跨域問題了,但是要注意的是,app.UseCors的位置,需要放在UseRouting()的后面,UseAuthorization()的前面,我第一次使用的時候就是UseCors放在了最前面導致怎么試都不成功,耗費了我不少時間,希望下次可以記住。
