2

AWS Visual Studio Toolkitを使用しているC#/ .Netサーバーレスアプリケーションで作業していますが、CORS構成。 ASP.Net Web APIフレームワークへのプロキシとして機能する単一のAPIエンドポイントを持つAPIゲートウェイを構成したツールキットに含まれているASP.Netの例に基づいてプロジェクトを作成しました。サーバーレスアーキテクチャーモデルのProxy GatewayエンドポイントでCORSを設定するProxy Endpoint

enter image description here

(ローカル・ノードのプロジェクトを提供する)、クロムでこのアプリケーションをテストするには、私はこれは私がAPIゲートウェイエンドポイントでCORSを設定しなければならないことを意味知っているが、私があるように見えるNo 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access.

を取得しています何かが欠けている。私はアクションが、このような...

enter image description here

としてCORSを有効にするには、ドロップダウンを使用しかし、私はいくつかのエラーを取得し、問題が解決しません。

enter image description here

私は(一時的に)CORSを無効にするには、Chromeの拡張機能を使用し、APIのエンドポイントがCORSなしで正常に動作することを確認しています。

ここで私は何が欠けていますか? CORSをオンラインに設定する例では、通常、このようなキャッチオールエンドポイントの指示はありません。使用するように設定されていても、GETを独自の方法で破っても役に立ちませんでした。

追加の質問として、私が紛失しているCORS設定がある場合は、serverless.templateファイルまたはその他の自動展開手順に統合する良い方法がありますか?

答えて

5

あなたのANYプロキシメソッドと関係があります。ここに述べたように:プロキシ統合のいずれかの方法に上記の手順を適用する場合http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html

、適用可能なCORSヘッダは設定されません。代わりに、統合バックエンドを使用して、Access-Control-Allow-Originなどの該当するCORSヘッダーを返します。

したがって、バックエンドAPIで適切なCORSヘッダーを返さなければなりません。

+0

私は間違っている可能性がありますが、私はAPIゲートウェイがOPTIONS呼び出しでCORSヘッダーを返すと思います。バックエンドがAccess-Control-Allow-Originヘッダーを返す必要があるのは実際の呼び出しです。 – user1432403

0

に適用されます。 1.オプションの方法を正しく設定する必要があります - 通常完了APIゲートウェイでモックメソッドを使用します。 2.コード内のHTTPメソッド実装は、CORSヘッダーを正しく返す必要があります。あなたが検索するなら、これに関するかなりの記事があります。

私の場合、問題はポイント1でした。 .NETコアを使用してAPI-Gateway Lambda統合を開発していたときに、APIゲートウェイ「Enable CORS」ボタンを使用しても機能しませんでした。また、serverless.templateファイルにoptionsメソッドの作成を追加する方法も見つけられませんでした。

これは別の方法です。 CLIまたはVisualStudioからラムダを公開した後、APIエンドポイントでPUTリクエストを発生させ、メソッドdefのオプションを含むスワッガー定義を渡し、クエリparam mode = mergeを確実に設定します。 PostManを使ってこれを行うことができます。

または

あなたが同じことを行いDotNetのユーティリティを使用するには、ここで説明: http://sbytestream.pythonanywhere.com/blog/Enabling-APIGateway-CORS ソースコードがあまりにもGitHubの上で使用可能です。

関連する問題