今天和前端小伙伴讨论现有产品前后端分离解决方案的同时,又回想起了几个月前一直没有解决Web Api Put和Delete以及POST无法跨域请求的问题,在查询了相关资料之后又重燃了对该问题的希望,今天跟大家一起分享下我的经验,以防今后的踩坑。
当前端去访问WEB API 后端时发现,通讯状态是200 OK,但是数据却被拦截了,报错如下。
经一番资料查询,发现的确是大家都遇到的问题——跨域问题。具体原理大家可以去百度下详细资料,这里不加详述。
解决方法:
首先,需要在VS2019中通过Nuget安装“Microsoft.AspNet.WebApi.Cors”,具体操作如下:
一、选中工程文件鼠标右键选择“管理NuGet程序包”
安装完成后,在App_Start文件夹下WebApiConfig文件中加入以下代码:
EnableCrossSiteRequest(config);
private static void EnableCrossSiteRequest(HttpConfiguration config)
{
var cors = new EnableCorsAttribute(
origins: "*",
headers: "*",
methods: "*"
);
config.EnableCors(cors);
}
如下图所示:
大功告成~~
测试一下: