![](/img/trans.png)
[英]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.