1.在startup.cs中配置好基本的跨域的一些属性后,前端还是一直报跨域的错误
//配置跨域处理 services.AddCors(options => { options.AddPolicy("any", builder => { builder.AllowAnyOrigin() .AllowAnyMethod() .AllowAnyHeader() .AllowCredentials(); }); });
后来加这段后跨域问题解决
ASP.NET Core 防止跨站请求伪造(XSRF/CSRF)攻击
services.AddMvc(options => options.Filters.Add(new AutoValidateAntiforgeryTokenAttribute()));
2.POST请求一律报400错误,后来排查到时因为加了上面的属性,注释后正常访问,但两者存在冲突
3.正确解决方案(上面的防止跨站攻击的代码删除掉,加上下面的这段)
通过“CorsAuthorizationFilterFactory”过滤器方式给所有Controller增加跨域设置
services.Configure<MvcOptions>(option => option.Filters.Add(new CorsAuthorizationFilterFactory("any")));
参考:
https://stackoverflow.com/questions/44379560/how-to-enable-cors-in-asp-net-core-webapi
https://blog.csdn.net/aoquandao8917/article/details/101937311