【发布时间】:2021-11-25 07:33:45
【问题描述】:
我有一个最初用 .NET Core v2.1 编写的 Web 应用程序。
在我将它迁移到 .NET Core v3.1 之后 - 我的所有 UI 请求都抛出以下错误:
*Access to XMLHttpRequest at 'https://myapp.net/v1/myendpoint' from origin 'https://mainapp.net' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.*
这是我的 Startup.cs:
public void ConfigureServices(IServiceCollection services)
{
...
services.AddCors(options =>
{
options.AddPolicy("MyCorsPolicy", builder => builder
.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader());
});
...
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.MyRequireTLSOnRemoteConnections(); // <-- (proprietary)
if (env.EnvironmentName == "Development")
{
app.UseDeveloperExceptionPage();
}
app.UseAuthentication();
app.UseReportingAuthentication();
app.UseCors("MyCorsPolicy");
app.UseSwagger();
...
}
我有意删除了 app.UseHttpsRedirection(); 以完全禁用 HTTP 调用。
该问题是特定于 UI 的,并且在通过 Postman 执行端点时不会发生。
我已经尝试了不同的选项,我可以在互联网上找到,例如:
- 在 app.UseCors() 之前添加
app.UseRouting();; 但仍然出现错误。
【问题讨论】:
标签: asp.net-core cors asp.net-core-3.1