2017-08-17 9 views
2

ローカルで正常に動作していたangularjsアプリケーションからaspnetcore web apiが呼び出されました。私はCORSを有効にしました。クライアントにAPIを今すぐ使用させるための唯一の方法でした(これは意味をなさないようで、今は他のことについて心配する必要がありました)。今日2.0をaspnetcoreへのアップグレード後にaspnetcore 2.0にアップグレードした後にCORSが動作しない

(それは私が実際に使用できる機能のいくつかを持っているので)私は今ちょうど私がCORSを有効にする前に取得するために使用したのと同じエラーを取得:

いいえ「アクセス制御-Allow-Originのヘッダーは、要求されたリソース上に存在します。

すべてのdotnetcoreパッケージをバージョン2.0(Microsoft.AspNetCore.Corsを含む)にアップグレードしました。

それは次のように私は私の起動や設定のコードを変更していないことは注目に値するかもしれません:このすべての前に述べたように

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 
{ 
    loggerFactory.AddConsole(Configuration.GetSection("Logging")); 
    loggerFactory.AddDebug(); 
    app.UseCors(builder => builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader());   
    app.UseMvc(); 
} 

public void ConfigureServices(IServiceCollection services) 
{ 
    services.Configure<Models.SmtpConfig>(Configuration.GetSection("Smtp")); 
    services.AddCors(); 
    services.AddMvc(); 
} 

がaspnetcore 1.1で正常に働いたとFYI私は制限を計画CORSを使用しているため、特定のサブドメインからのコールのみを受け付けますが、現時点ではその方法はありません。

+1

ブラウザの開発ツールで応答を確認してください。私はしばしば、サーバーが実際に要求を処理できず、代わりに500を送信したときにこれを持っていました(この場合、CORSヘッダーは設定されません)。 – poke

+0

これはエラーですが、私はそれが起こっていることを知っていますが、なぜ彼らは設定されていないのかわかりません! –

+1

私のコメントをもう一度読んで、ブラウザの開発ツールの[ネットワーク]タブを確認してください。 * "No 'Access Control-Allow-Origin'ヘッダー" *は、ブラウザーが要求を実行している間にエラーが発生しましたが、ヘッダーの原因がサーバーエラーのために発生している可能性があります。 – poke

答えて

2

私は...私の元にポケからのコメントへ

おかげで、これを答えることはここで行うには正しいことですが、私は問題は(基本的には自分の愚かさ)であったものを述べるだろうかどうかわからないんだけど私は少し深く掘り下げてブレークポイントを追加し始めました。(実際にはコードで問題があることがわかりました。(コマンドを挿入したコードを1行削除しました。 )ので、DIコードにランタイムエラーがあり、その副作用はヘッダーが応答に設定されていないことでした。

以前に使用していたようにデバッガがエラーをスローしなかった理由はわかりません。ブラウザのトリプルチェックでCORSエラーが表示された場合は、まず500サーバーエラーではありません。

関連する問題