1. axios のグローバル構成
実際のプロジェクト開発では、axios が開始するほぼすべてのコンポーネントが使用されます。データリクエスト。このとき、次の 2 つの問題が発生します。
① 各コンポーネントで axios (肥大化したコード) をインポートする必要がある
② リクエストを送信するたびに、完全な情報を入力する必要があるリクエスト パス (後のメンテナンスに役立ちません) [関連する推奨事項: vue.js ビデオ チュートリアル ]
#3. vue2 プロジェクトでの axios のグローバル設定
メインの Vue コンストラクターのプロトタイプ プロトタイプ オブジェクトを通じて、axios をグローバルに設定する必要があります。 js エントリ ファイル2. axios インターセプター
2. リクエスト インターセプターの設定
axios.interceptors.request.use(成功したコールバック、失敗コールバック) リクエスト インターセプターを構成できます。サンプル コードは次のとおりです。要素 ui
レスポンス インターセプターは、axios.interceptors.response.use (成功したコールバック、失敗したコールバック) を通じて設定できます。 。サンプル コードは次のとおりです。
#3. プロキシ クロスドメイン プロキシ
クロスドメインの問題を解決する
#1)、Cors (最も標準的な処理) では、フロントエンド担当者が処理を行う必要はなく、サーバーを作成する人だけが応答を返すときにいくつかの特別な応答ヘッダーを追加する必要があります。サーバー内2. プロキシを通じてインターフェイスのクロスドメインの問題を解決する
vue-cli を通じて作成されたプロジェクトでインターフェイスに関するクロスドメインの問題が発生した場合、プロキシを通じて解決できます:
① axios のリクエスト ルート パスを vue プロジェクトの実行アドレスに設定します (インターフェイス リクエストはドメインを越えなくなりました)
② vue プロジェクトは、要求されたインターフェイスが存在しないことを検出し、リクエストをプロキシ エージェントに転送します
#③ プロキシはリクエストのルート パスを devServer.proxy 属性の値に置き換え、実際のデータ リクエストを開始します④ プロキシがリクエストを転送する 受信したデータが axios に転送される##3. プロジェクトでプロキシを設定する
##ステップ 1. main.js エントリ ファイルで、 axios のルート パスを現在の Web プロジェクトにリクエストします。 ルート パス:② プロジェクトがオンラインで起動されるときも、API インターフェイス サーバーで CORS クロスドメイン リソース共有を有効にする必要があります。
利用方法 1 プロキシサーバーを設定する 欠点は 2 つあります :
1. プロキシサーバーを使用するかどうかを柔軟に制御できない
パブリックフォルダーは、 8080 サーバーのルート パス (8080 サーバーにあるものはパブリック ファイルによって異なります。フォルダーにあるもの) 要求されたリソース 8080 自体がそれを持っている場合、要求は 5000 サーバーに転送されません
2. 複数のプロキシを構成することはできず、リクエストは 5000 サーバーにのみ転送できます
方法 2 を使用して、プロキシ サーバーを開く '/api' リクエスト プレフィックス
プレフィックスの搬送位置: ポート番号の直後
#これを直接リクエストすると、リクエストを 5050 サーバーに送信するときに、まだリクエストが行われないため、404 エラーが発生します。 /api/ Students を伝送します。5050 サーバーには Student はありますが、/api/students はありません。
changeOrigin: (使用
changeOrigin: false の場合、プロキシ サーバーは、5050 サーバーでもあることを示します。これは 8080 サーバーです。
場合によっては 5050 サーバーが使用します。いくつかの制限があるため、この構成項目は true に設定するのが最適です。
wsとchangeOriginが書かれていない場合、デフォルト値もtrueになります(reactでfalseと書かれていない場合)