角度2サービスASP.NETコア1.0のWeb APIコントローラークラスを呼び出すことが、私はこのエラーを取得:は、ASP.NETコアにクロスオリジン・リクエスト(CORS)を有効にすることはできません1.0
カード。サービス.ts:角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?}");
});
}
ええと、私はそれを試してみました。あなたはどのようにWebサービスを呼び出すことができますか?またAngular 2の 'http'ライブラリ(これは過去にいくらか奇妙であることが分かっています)を使わずに試すことができますか? 'fetch( 'http:// localhost:8462/api/card'、{mode: 'cors'})'のようなものです。また、ネットワークタブをチェックして、サービスがCORS関連のヘッダーを実際に送信しているかどうかを確認します。また、どのバージョンのASP.NET Coreを実行していますか?このRC1ですか、いくつかのdevビルドを実行していますか(私は後者をテストしました)?そして、これをIISで実行しているのですか、コマンドラインから直接Kestrelを使用していますか? – poke
私はFiddlerを使って同じ電話をしました。同様の401エラーが発生しました。私はASP.NET RC1で動作しています。私はIISを通じてそれを実行しています。 – Derek