php Xiaobian Strawberry は、CORS gRPC ゲートウェイ GoLang を紹介します。 CORS は Cross-Origin Resource Sharing の略で、ブラウザーでクロスドメイン要求を行うために使用されるメカニズムです。 gRPC は、分散システムの構築に使用できる、高性能のオープンソースのリモート プロシージャ コール (RPC) フレームワークです。 GoLang は、高い同時実行性とシンプルさを備えた強力なプログラミング言語です。 CORS gRPC ゲートウェイ GoLang は CORS と gRPC を組み合わせて、Go 言語を通じてゲートウェイを実装し、クロスドメイン要求を実装します。この記事では、CORS gRPC ゲートウェイ GoLang の原理と使用法を詳しく紹介し、このテクノロジーをより深く理解し、応用できるようにします。
私は vue.js 3 フロントエンドを持っており、grpc-gateway
を通じて golang バックエンドを呼び出しています。しばらくこれを続けてきましたが、トンネルの先に光が見えてきました。
現在、cors の問題に直面しています。ただし、それに対処する方法については矛盾する情報を読んでいます。そこで、皆様のお役に立てればと思い投稿させていただきました。
これは、grpc (ゲートウェイ) のマルチプレクサ サーバーを初期化する方法のコードです
リーリーここに cors 構成を追加する必要があると思いますが、server.go ファイルでどのように設定するかわかりません。..
リーリーコンソールエラー:
リーリーこのようなものをどこに追加すればよいかわかりません
リーリーgolang grpc ゲートウェイに何かが組み込まれているはずだと思いますが、何も見つかりません。
ご提案をいただければ幸いです。
-----アップデート1-----
試してみました
リーリー ###そして### リーリー ###そして### リーリー ###組み合わせる### リーリーまだ同じ問題が発生しています。非常にイライラします
回避策
コメントで提供された最新のエラーに基づいて:
オリジン 'localhost:9000' から 'localhost:8080/v1/test' の xmlhttprequest へのアクセスが CORS ポリシーによってブロックされました: プリフライト リクエストへの応答はアクセス制御チェックに失敗しました: http の通常のステータスがありません。
(
optionshttp メソッド) を送信しています。
サーバーは 2xx 以外の応答で応答しています。
これは、enablecors
関数がリクエストを grpc-gateway ハンドラーに伝播しているためではないかと思われます。このハンドラーは
http メソッドに満足せず、おそらくエラー ステータスを返します。はい:### リーリー
したがって、これを回避するには、プレフライト リクエストを行うときに リクエストをさらに伝播させないようにする必要があります。例:
リーリー
しかし
、上記は依然として cors 処理の適切な実装ではない可能性があります。これには、
などの既存のパッケージを使用する必要があります。これは、賢明な方法でこれを処理し、潜在的な落とし穴などに対処します。 したがって、
github.com/rs/corsをインポートして、次の操作を実行します。 リーリー を実行すると、すべてをやり過ごすことができるようになります。このライブラリを使用すると、特定のオリジン、http メソッドなどをニーズに合わせて調整できます。
以上がCORS grpc ゲートウェイ GoLangの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。