WebAPI CORS 支援跨域POST
阿新 • • 發佈:2019-01-29
網上一般能找到的都是通過Microsoft.AspNet.WebApi.Cors來實現CORS,這是通過dll的方式,然後還有一種是通過config的方式
1、dll方式實現CORS
a) System.Web.Http未能載入
這個可以直接下載dll,然後新增到專案引用中
b) 嘗試訪問安全關鍵型別
這是因為System.Web.Http版本不一致,本人做測試時Microsoft.AspNet.WebApi.Cors版本為5.2.3,而預設新增的System.Web.Http為4.0版本,通過Nuget重新下載個匹配版本,然後將引用調整為5.2.3版本的引用即可修復問題
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net45" />
c) 預設appsetting配置導致的錯誤
2、config方式實現CORS
在Web.config的system.webServer配置節下增加配置,這種方式的好處是簡單,只要在這裡加了這個配置,那麼所有的api都可以按同一種規則支援跨域請求
<httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" value="*" /> <add name="Access-Control-Allow-Headers" value="*" /> <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE" /> </customHeaders> </httpProtocol>
如果是HTTP Basic Access authentication,似乎還需要個<add name="Access-Control-Allow-Credentials" value="true" />,此處還未驗證