Angular 2服务调用ASP.NET Core 1.0 Web API控制器类但我收到此错误:
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时没有收到错误.