我正在尝试在我的网页上使用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问题?
答案 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();
}