asp.net-web-api – 无法在ASP.NET Core 1.0中启用跨源请求(CORS)

Angular 2服务调用ASP.NET Core 1.0 Web API控制器类但我收到此错误:

《asp.net-web-api – 无法在ASP.NET Core 1.0中启用跨源请求(CORS)》

card.service.ts:Angular 2代码.它在http:// localhost:3000上运行.我怀疑这里有问题.

import { Injectable } from 'angular2/core';
import { Http, Response } from 'angular2/http';
import { Observable } from 'rxjs/Observable';

import { ICard } from './card';

@Injectable()
export class CardService {
    constructor(private _http: Http) { }

    getCards(): Observable<ICard[]> {
        return this._http.get('http://localhost:8462/api/card')
            .map((response: Response) => <ICard[]>response.json())
            .do(data => console.log("getCards: " + JSON.stringify(data)))
            .catch(this.handleError);
    }

    private handleError(error: Response) {
        console.error(error);
        return Observable.throw(error.json().error || 'Server error')
    }    
}

Startup.cs:ASP.NET核心代码.在http:// localhost:8462上运行.我相信修复是将CORS添加到我的Startup.cs文件中.我试过跟随ASP.NET docs on CORS,以及许多其他CORS指南没有运气.

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

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        app.UseIISPlatformHandler();

        app.UseApplicationInsightsExceptionTelemetry();

        app.StaticFiles();

        app.UseCors(builder =>
            builder.AllowAnyOrigin()
                   .AllowAnyHeader()
                   .AllowAnyMethod()
            );

        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");
        });
    }

最佳答案 我想我明白了.当我第一次做文件>新项目我选择了Windows身份验证.看起来这就是造成错误的原因.

我通过使用Windows身份验证创建一个新项目并将CCS添加到Startup.cs来测试它.得到了同样的错误.在没有Windows身份验证的情况下创建新项目并添加了CORS时没有收到错误.

点赞