CORS ポリシー: プリフライト要求への応答がアクセス制御チェックに失敗しました: 'Access-Control-Allow-Origin' がありません

王林
リリース: 2024-02-06 11:00:08
転載
749 人が閲覧しました

CORS 策略:对预检请求的响应未通过访问控制检查:无“Access-Control-Allow-Origin”

質問内容

バックエンドでは golang と gin-gonic/gin Web フレームワークを使用し、フロントエンドでは React axios を使用しています。 2 日間解決しようとしてきましたが、依然として以下の同じエラーが発生します:

リーリー

このエラーは、パッチ リクエストを送信しようとした場合にのみ発生します。そのため、そのリクエストにはプリフライト オプション リクエストが必要ですが、get と post はすべて期待どおりに機能し、プリフライト チェックは実行されません。

これは私のルーター構成のコードです:

リーリー

これはフロントエンドです:

リーリー

バックエンドが正しく設定されていると確信しており、必要なヘッダーがすべて返されるはずです。

たとえば、get リクエストの場合、応答ヘッダーは次のようになります:

リーリー

パッチ要求の試行に対しては応答がありませんが (当然のことですが)、プリフライト応答ヘッダーは次のとおりです:

リーリー

考えられる問題について何か提案はありますか?この二日経っても何も分かりません。よろしくお願いします!

タイトルも追加してみました:

リーリー

...もう一度 if ステートメントで:

リーリー

しかし、これはまったく役に立ちません。実際、この if ステートメントはプリフライトの実行時に実行されないため、サーバーがオプション要求を実行していることがコンソールからわかります。

リーリー ###編集:###

これはパッチリクエストを送信するcurlコマンドです(つまり、実際にはこれはプリフライトオプションリクエストです):

リーリー

このリクエストに対する応答:

cors policy: response to preflight request doesn't pass access control check: no 'access-control-allow-origin' header is present on the requested resource.
ログイン後にコピー

正解

非推奨のパッケージ
github.com/gin-gonic/contrib/cors

を使用していることがわかりました。代わりに github.com/gin-contrib/cors を使用する必要があります。 github.com/gin-contrib/cors を使用したデモ構成は次のとおりです: リーリー withcredentials

パラメータを使用したにもかかわらず、何らかの理由で、

patch リクエスト ヘッダーに「cookie」ヘッダーがありません。 リーリー ここで { withcredentials: true }

はデータとして扱われ、構成はありません。サーバーに送信するデータがない場合は、次のように記述する必要があります:

リーリー

以上がCORS ポリシー: プリフライト要求への応答がアクセス制御チェックに失敗しました: 'Access-Control-Allow-Origin' がありませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!