[英]Angular 6 - Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header
[英].NET 5 Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource
我目前正在尝试在 .NET Core 5 API 上启用 CORS。 非预检,跨域请求工作正常; 但是,所有OPTIONS
请求都会导致上述消息。 我的Startup.cs
看起来像这样:
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(options =>
{
options.AddPolicy(corsPolicyName, builder =>
{
builder
.WithOrigins("http://localhost:3000")
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials();
});
});
...
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseHttpsRedirection();
app.UseRouting();
app.UseCors(corsPolicyName);
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
在查看了其他几个线程之后,我似乎无法弄清楚我的配置有什么问题。 任何帮助将不胜感激。
消除:
.AllowCredentials();
并在 UseRouting 和 UseAuthorization 之间移动 app.UseCors(corsPolicyName):
app.UseHttpsRedirection();
app.UseRouting();
app.UseCors(corsPolicyName);
app.UseAuthorization();
在我的 API 上启用匿名身份验证解决了这个问题。 OPTIONS
请求不包含凭据,因此不允许匿名身份验证导致它们被拒绝。
可以通过转到项目的属性 > 调试 > 选中“启用匿名身份验证”来启用匿名身份验证。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.