【发布时间】:2020-04-18 01:55:04
【问题描述】:
我需要从提供服务的来源以外的来源访问我的 .NET Core 3.1 WebApi。但是,当我关注 the guidance from Microsoft 时,我仍然在客户端收到以下 JavaScript 错误:
CORS 策略已阻止从源“http://localhost:64237”获取“http://localhost:50679/merchants”的访问权限:对预检请求的响应未通过访问控制检查:预检请求不允许重定向。
在我的 Startup 类中,我的 ConfigureServices 方法如下所示:
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(options =>
{
options.AddPolicy("CorsPolicy",
builder =>
{
builder.WithOrigins("http://localhost:64237");
});
});
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_3_0);
services.AddControllers();
}
...我的 Configure 方法如下所示:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseCors("CorsPolicy");
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
然后我在我调用的控制器方法上使用了 EnableCors 属性,如下所示:
[EnableCors("CorsPolicy")]
我在 StackOverflow 上看到了几篇关于 Cors 的帖子,但没有一篇有帮助,因为我没有看到我做错了什么 - 但是,它们中的大多数都不是特定于 .NET Core 3.1 的。我还做了一个感觉检查并设置断点来检查所有上述代码是否正在运行。
谁能解释一下为什么我在这种情况下无法使用 Cors?
【问题讨论】:
标签: c# .net cors asp.net-core-webapi