我有一个ASP.NET 5 Web API(无论如何,现在还是MVC)后端,我正在JS应用程序中的axios库中使用它。

我在MVC中的CORS配置如下:

public void ConfigureServices(IServiceCollection services)
{
      services.AddMvc();
      services.AddCors();
}


public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
      app.UseCors(builder => {
          builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader();
      });
}

换句话说,我应该允许所有可能的请求。但是,尽管此固定的预检请求已被拒绝,但POST请求仍然被拒绝(我可以看到它在服务器上执行,但是响应中没有标题,因此会导致客户端错误)。

有谁知道为什么这行不通?

这些是MVC API返回的 header :
  • 对于OPTIONS飞行前检查(这一步通过了):
    c# - 即使允许几乎所有内容,ASP.NET 5/Core/vNext CORS也无法正常工作-LMLPHP
  • 对于实际的POST请求(此请求未通过):
    c# - 即使允许几乎所有内容,ASP.NET 5/Core/vNext CORS也无法正常工作-LMLPHP
  • 最佳答案

    您必须在MVC之前添加Cors。中间件的注册顺序很重要。如果Cors在mvc之后注册,则永远不会调用它。它们按照注册顺序进行调用。

    一旦cors处理了请求,它将把它传递给下一个中间件(Mvc)

    07-28 02:35
    查看更多