私は角2を学んでいます。これは、ASP.NET Web APIアプリケーションからデータを取得するはずのサービスです。ASP.NET Web APIでCorsを有効にする方法
@Injectable()
export class ExpenseService {
private _expUrl = "http://localhost:65400/api/expenses";
constructor(private _http: Http){}
getExpenses(): Observable<IExpense[]> {
return this._http.get(this._expUrl)
.map((response: Response) => <IExpense[]>response.json())
.do(data => console.log('ALL: ' + JSON.stringify(data)))
.catch(this.handleError)
}
//more here...
}
上記のコードはMicrosoft Edgeで正常に動作しています。多くの記事で示唆したように、私は私のウェブAPIでCORSを有効にしている
XMLHttpRequest cannot load http://localhost:65400/api/expenses.
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://localhost:3000' is therefore not allowed
:しかし、ChromeとFirefoxで、私は次のエラーを取得しています。
public void ConfigureServices(IServiceCollection services)
{
services.AddCors();
//...
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env,
ILoggerFactory loggerFactory)
{
//...
app.UseCors(builder =>
builder.WithOrigins("http://localhost:3000/"));
}
結果は変わりませんでした。 Edgeがうまく動作している間は、ChromeとFireFoxで同じエラーが発生しています。
クライアント側のコードは完全に無関係である、CORSは、サーバー側を実装しなければならない、それはそれが利用可能ではなく、JavaScriptのだ決定ブラウザです。あなたの質問は、それを.NETで実装する方法でなければなりません。これは研究するのは難しいはずはありません....このサイトには何千ものCORSの質問があり、それに専念するウェブサイトと他の多くのウェブリソース – charlietfl
みんな、すべての質問を投票停止します。私はCORSについて何も知らない。私はエラーが発生しているので、ここで助けを求めています。私はタイトルを変更する必要がありますか? – Richard77
はい、いくつかの調査を行う必要があります。毎週何百ものCORSの質問が寄せられます – charlietfl