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

标签 asp.net-web-api angular cors asp.net-core asp.net-core-mvc

Angular 2 服务调用 ASP.NET Core 1.0 Web API Controller 类,但出现此错误:

enter image description here

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 Core 代码。在 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?}");
        });
    }

最佳答案

我想我明白了。当我第一次执行"file">“新建项目”时,我选择了“Windows 身份验证”。看起来这就是导致错误的原因。

我通过使用 Windows 身份验证创建一个新项目并将 CORS 添加到 Startup.cs 来对其进行测试。得到了同样的错误。当我创建一个没有 Windows 身份验证的新项目并添加 CORS 时没有收到错误。

关于asp.net-web-api - 无法在 ASP.NET Core 1.0 中启用跨源请求 (CORS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36926713/

相关文章:

angular - Asp.net Core spa + angular4 + firebase

angularjs - 在 Angular 混合应用程序的降级组件中无法识别驼峰参数

javascript - 为什么我的 JavaScript 代码会收到 "No ' Access-Control-Allow-Origin' header is present on the requested resource"错误,而 Postman 却没有?

Javascript 跨域请求到 Glassfish 4 服务器?

c# - 返回 HTML 的内容协商

c# - 自动生成文档和继承

ASP.NET核心API : How to use MySQL

angular - Bootstrap Modal 不显示正确的数据

asp.net-web-api - mvc webapi 跨域发布

c# - 通过 ApiController 将 JSON 发布到 Azure 队列