我在。net core 6中有一个web api我想要的是让所有人都有能力。当我只为本地主机添加策略时,它工作得很好,但是当我更改策略以允许任何来源时,我得到错误-访问XMLHttpRequest在'…'从原点'http://localhost'已被CORS策略阻止:对预飞行请求的响应未通过访问控制检查:请求的资源上不存在' access - control - allow - origin '标头。
我代码:
...
/* NOT working */
builder.Services.AddCors(options =>
{
options.AddPolicy(name: "any",
policy =>
{
policy
.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials();
});
});
/* Works fine*/
builder.Services.AddCors(options =>
{
options.AddPolicy(name: "local",
policy =>
{
policy
.WithOrigins("http://localhost")
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials();
});
});
...
app.UseCors("any");
/* OR */
app.UseCors("local");
知道为什么吗?
InConfigureServices
put:
services.AddCors();
and inConfigure
put:
app.UseCors(builder => builder.AllowAnyOrigin()
.AllowAnyHeader()
.AllowAnyMethod());