Nginxのクロスドメイン設定は次のようには機能しません サーバー{ 聞く 80; server_name ローカルホスト; # インターフェース転送場所 /api/ { # クロスドメインリクエストアドレス * をワイルドカードとして許可する add_header 'Access-Control-Allow-Origin' '*'; # リクエストメソッドをクロスドメインに設定します。add_header 'Access-Control-Allow-Methods' 'GET、POST、OPTIONS、PUT、DELETE'; # クッキーの送信を許可するかどうかを設定します。add_header 'Access-Control-Allow-Credentials' 'true'; # リクエスト ヘッダーの設定。ここでワイルドカード文字を設定してみませんか? * add_header 'Access-Control-Allow-Headers' 'Authorization,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken,X-Data-Type,X-Requested-With,X-Data-Type,X-Auth-Token' はサポートされていないためです。 # リバースプロキシを設定する proxy_pass 127.0.0.1:8081/; } } インターネット上の nginx のクロスドメイン構成は主に上記のバージョンです。ただし、多くの人はそれをコピーするだけで、実際には実践していません。そのため、必要な人に盲目的にコピーせず、分析することを学ぶように思い出させるためにこの記事を書きました。 Nginxは次の設定を変更して有効にします サーバー{ 聞く 80; server_name ローカルホスト; # インターフェース転送場所 /api/ { # クロスドメインリクエストアドレス * をワイルドカードとして許可する add_header 'Access-Control-Allow-Origin' '*'; # リクエストメソッドをクロスドメインに設定します。add_header 'Access-Control-Allow-Methods' 'GET、POST、OPTIONS、PUT、DELETE'; # クッキーの送信を許可するかどうかを設定します。add_header 'Access-Control-Allow-Credentials' 'true'; # リクエスト ヘッダーの設定。ここでワイルドカード文字を設定してみませんか? * add_header 'Access-Control-Allow-Headers' 'Authorization,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken,X-Data-Type,X-Requested-With,X-Data-Type,X-Auth-Token' はサポートされていないためです。 # オプションリクエスト処理を設定する if ( $request_method = 'OPTIONS' ) { 200を返します。 } # リバースプロキシを設定する proxy_pass 127.0.0.1:8081/; } } 2つのコードの主な違いは次のコード行です。 $request_method = 'OPTIONS' の場合 200を返します。 } ブラウザは、POST リクエストのオプション事前チェック リクエストを送信します。これは主にリクエスト ヘッダーをサーバーに送信します。サーバーが許可した場合は、実際の POST リクエストが送信されます。したがって、f12 は、POST が 2 つのリクエストを送信することが多いことを示しています。バックエンドの Java コードがオプション要求を処理しないため、オプション インターフェース要求は 403 禁止を報告します。ここで、nginx はインターフェース層に到達せずにオプション要求に直接 200 を返し、ポスト応答ヘッダーを直接許可します。これにより、上記の無効な構成が有効になる可能性があります。 ちょっとした知識ポイント プロキシパス 127.0.0.1:8081/; リバースプロキシに追加するかどうかの問題について; http://localhost/api/user/login にアクセスします。
スラッシュを追加すると、すべての /api リクエストがルート ディレクトリに転送され、/api が / に置き換えられます。この時点で、インターフェイス パスが変更され、/api のレイヤーが 1 つ減ります。スラッシュなしの場合はどうでしょうか?これは、ドメイン名 127.0.0.1:8081 に転送するときに /api パスが失われないことを意味します。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: 新しく作成された MySQL ユーザーの % には localhost が含まれていますか?
目次概要解決策 1: クロージャ解決策2: 構造を分割する解決策3:解決策4: setTimeout...
例示するMySql Community Edition は、5.7.11 以降、テーブルベースのデー...
目次1. フロントエンドルーティングの実装原則2. vue-Routerの基本的な使い方2.1. イ...
ユーザーが登録すると、ラベルをクリックして確認コードを変更します。クリックするとラベルに影の部分がで...
質問:最近、プロジェクトの統計を行っていたときに、テーブルを上下にスクロールしたときにテーブルの先頭...
目次01 コンテナの本質とは何か? 02 Cgroupテクノロジーと名前空間テクノロジーの概要03 ...
この記事では、ネイティブ JS で実装された特殊効果メッセージ ボックスを紹介します。効果は次のとお...
この記事では、CSSの透明な境界線の背景クリップの素晴らしい使い方を主に紹介し、みんなと共有し、自分...
GUNスクリーン:公式サイト: http://www.gnu.org/software/screen...
共有システムで作業しているときは、他のユーザーが自分のコンソールを覗き込んで、自分が何をしているか見...
1. 問題の説明 root@mysqldb 22:12: [xucl]> テーブル t1\G ...
この記事では、モグラ叩きゲームを実装するためのJavaScriptの具体的なコードを参考までに紹介し...
まず、データベース テーブルを作成します。 テーブル `t_demo` を作成します ( `id` ...
少し前にTikTokで揺れる連打が流行っていたので真似してみることにしました。さっそく効果をみてみま...
目次複数の変数を同時に宣言する場合は、1 行に短縮できます。分割代入は複数の変数に同時に値を割り当て...