错误“No'Access-Control-Allow-Origin'”,但是cors允许一切

时间:2018-06-01 14:40:37

标签: asp.net angular rest asp.net-web-api

我正在尝试在我的网页上使用get请求(以角度制作),这是指我自己的api(使用APS.NET核心创建)。我的chrome调试工具中出现以下错误:

  

请求的资源上没有“Access-Control-Allow-Origin”标头。因此,不允许原点“http://localhost:4200”访问。

这很奇怪,因为我在startup.cs中添加了以下内容:

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

所以应该允许一切? 这是我用于GET请求的代码:

ngOnInit(){
  debugger;
  this._svc.getAllMagicItems().subscribe(result =>{
    debugger;
    console.log(result);
    debugger;
    this.items = Array.of(result);
    debugger;
  })
}

getAllMagicItems()执行此代码:

getAllMagicItems(): Observable<IImageRootObject> {
    return this._http.get<IImageRootObject>("http://localhost:63514/api/v1/MagicItem");
}

如何解决此CORSE问题?

1 个答案:

答案 0 :(得分:1)

就像this post的Giancarlo Benitez提供的节目一样,我的问题在于调用 services.AddCors() services.AddMVC()。我的问题是我首先调用了 AddMVC(),但是在MVC初始化之前需要允许CORS标头。因此,请按以下顺序加载它们:

public void ConfigureServices(IServiceCollection services) {
  services.AddCors();       /* <----- Added this line before de MVC */
  services.AddMvc();
}