1. 程式人生 > >WebAPI CORS 支援跨域POST

WebAPI CORS 支援跨域POST

網上一般能找到的都是通過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" />,此處還未驗證