.NET Core 2.0中的CORS"请求的资源上没有'Access-Control-Allow-Origin'标头."

Sam*_*rod 4 asp.net cors asp.net-core

我使用Core 2.0创建了一个web api,并且在执行跨域调用时启用了cors,接收到以下错误:"请求的资源上没有'Access-Control-Allow-Origin'标头."

以下是我在startup.cs中的配置:

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddLogging();
        services.AddMvc();
        services.AddCors(options =>
        {
            options.AddPolicy("AllowAll",
                builder =>
                {
                    builder
                    .AllowAnyOrigin()
                    .AllowAnyMethod()
                    .AllowAnyHeader();
                });
        });

        services.Configure<MvcOptions>(options =>
        {
            options.Filters.Add(new CorsAuthorizationFilterFactory("AllowAll"));
        });
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
        loggerFactory.AddConsole(Configuration.GetSection("Logging"));
        loggerFactory.AddDebug();
        app.UseMvc();
        app.UseCors("AllowAll");    
    }
Run Code Online (Sandbox Code Playgroud)

根据我在stackoverflow上看到的每个帖子/教程,或者在哪里,这是允许所有来源的正确方法.我错过了什么?

Mik*_*der 6

试着打电话:app.UseCors("AllowAll");之前app.UseMvc();.

文件规定如下:

要为整个应用程序启用CORS,请使用UseCors扩展方法将CORS中间件添加到请求管道.请注意,CORS中间件必须位于应用程序中要支持跨源请求的任何已定义端点之前(例如,在调用UseMvc之前).