我有一个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 :
最佳答案
您必须在MVC之前添加Cors。中间件的注册顺序很重要。如果Cors在mvc之后注册,则永远不会调用它。它们按照注册顺序进行调用。
一旦cors处理了请求,它将把它传递给下一个中间件(Mvc)