as been blocked by CORS policy: No Access-Control-Allow-Origin header is present on the requested resource. .net core api
在写低代码实现前端调用core api接口时出现了跨域问题,发现问题出在后端接口,或者说是被访问的接口,
在前端添加<meta http-equiv="Access-Control-Allow-Origin" content="*" />
是没效果的,因为问题是访问此页面出现错误,问题就从此页面此接口解决问题,上面的报错地址是core api写的,因此从它入手解决问题。
builder.Services.AddCors(c =>
{
//允许任意跨域请求
c.AddDefaultPolicy(policy =>
{
policy
.SetIsOriginAllowed((host) => true)
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials();
});
});
var app = builder.Build();
app.UseCors();
如果忘记写UseCores()
是无法生效的。
第二种方法,是增加了key.
builder.Services.AddCors(c =>
{
//允许任意跨域请求
c.AddPolicy("any",policy =>
{
policy
.SetIsOriginAllowed((host) => true)
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials();
});
app.UseCors("any");
最后一种也ok
app.UseCors(options => options
.AllowAnyHeader() // 确保策略允许任何标头
.AllowAnyMethod() // 确保策略允许任何方法
.SetIsOriginAllowed(o => true) // 设置指定的isOriginAllowed为基础策略
.AllowCredentials());