Web API CORS 跨網域並允許 PUT, DELETE

新增 ASP.NET Web 應用程式專案

選擇 Web API

從 NuGet 安裝 Microsoft.AspNet.WebApi.Cors

 

開啟 WebApiConfig.cs .cs 加入 config.EnableCors();

public static void Register(HttpConfiguration config)
{
    // Web API 設定和服務

    // Web API 路由
    config.EnableCors();
    config.MapHttpAttributeRoutes();

    config.Routes.MapHttpRoute(
        name: "DefaultApi",
        routeTemplate: "api/{controller}/{id}",
        defaults: new { id = RouteParameter.Optional }
    );
}

 

在 Controller 中引用 System.Web.Http.Cors 並加入 [EnableCors]

using System.Web.Http.Cors;
[EnableCors(origins: "*", headers: "*", methods: "*")]
public string Post([FromBody]string value)
{
    return "success";
}

origins 可以加入要開放的網域,如下

[EnableCors(origins: "http://localhost:8055", headers: "*", methods: "*")]
public string Post([FromBody]string value)
{
    return "success";
}

 

 

要開啟 PUT, DELETE 的話

在 Web.config 中加入 runAllManagedModulesForAllRequests=”true”

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true">
    <remove name="TelemetryCorrelationHttpModule" />
    <add name="TelemetryCorrelationHttpModule" type="Microsoft.AspNet.TelemetryCorrelation.TelemetryCorrelationHttpModule, Microsoft.AspNet.TelemetryCorrelation" preCondition="integratedMode,managedHandler" />
  </modules>
</system.webServer>

 

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *