一:
-
安装Microsoft.AspNet.WebApi.Cors NuGet包。
-
在WebApiConfig.cs文件中启用CORS:
using System.Web.Http; using System.Web.Http.Cors; public static class WebApiConfig { public static void Register(HttpConfiguration config) { // 启用CORS var cors = new EnableCorsAttribute("*", "*", "*"); config.EnableCors(cors); config.MapHttpAttributeRoutes(); // 其他Web API配置 } }
二:
-
可以在控制器类或单个动作方法上使用
EnableCors
属性进行更细粒度的配置:using System.Web.Http; using System.Web.Http.Cors; [EnableCors(origins: "http://example.com", headers: "*", methods: "*")] public class MyController : ApiController { // 控制器方法 }
这里的EnableCorsAttribute
指定了允许来自http://example.com
域的请求,允许任何请求头和任何HTTP方法。
需要注意的是,CORS跨域请求默认只在POST、PUT和DELETE方法下起作用。当使用其他HTTP方法时,需要在WebApiConfig.cs文件中配置config.MapHttpAttributeRoutes()
来启用CORS。
三、服务器配置
iis打开http响应头
名称:Access-Control-Allow-Origin
值:*
另外,在Web API应用程序中使用CORS时需要小心,确保只允许来自可信任来源的请求