vue2.0のクロスドメインプロキシを解決する方法

王林
リリース: 2023-05-23 22:47:38
オリジナル
1394 人が閲覧しました

フロントエンドとバックエンドが分離された開発モデルでは、通常、フロントエンドはAjaxを介してバックグラウンドインターフェースにリクエストを行うことでデータを取得します。ただし、同一生成元ポリシーの制限により、フロントエンドは同じドメイン名の下にあるインターフェイスのみを要求でき、他のドメイン名の下にあるインターフェイスを直接要求することはできません。これはいわゆるクロスドメイン問題です。

クロスドメインの問題を解決するには、クロスドメイン プロキシ テクノロジを使用できます。 Vue2.0では、webpackのproxyTableを設定することでクロスドメインプロキシを実装できます。ここでは、Vue2.0でクロスドメインプロキシを設定する方法を詳しく紹介します。

  1. http-proxy-middleware をインストールします

http-proxy-middleware は、リクエスト プロキシをターゲット サーバーに転送してクロス サーバーを実現できる Node.js プロキシ ミドルウェアです。オリジンリクエスト。まず http-proxy-middleware をインストールする必要があります。

npm install http-proxy-middleware --save-dev
ログイン後にコピー
  1. Configure proxyTable

Vue2.0 プロジェクトでは、通常、webpack 設定ファイルはプロジェクトのルート ディレクトリにあります。 config/index.js ファイル。このファイルで proxyTable を構成する必要があります:

dev: { // ... proxyTable: { '/api': { target: 'http://127.0.0.1:3000', // 目标服务器地址 changeOrigin: true, // 是否改变请求源 pathRewrite: { '^/api': '' // 路径重写 } } } },
ログイン後にコピー

上記のコードでは、/api で始まる要求を指定されたターゲット サーバーにプロキシするプロキシ ルールを構成します。要求された URL が /api/user の場合、インターフェイス http://127.0.0.1:3000/user にプロキシされます。 changeOrigin はリクエスト ヘッダーのホスト フィールドを設定するために使用され、pathRewrite はパスを書き換えて /api プレフィックスを削除するために使用されます。

  1. package.json を構成する

package.json ファイルに次のコードを追加する必要があります:

"scripts": { "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", "start": "npm run dev" },
ログイン後にコピー

これにより、次のコードを使用できるようになります。 npm run dev コマンドは開発サーバーを起動し、プロキシ ルールが自動的にロードされて使用されます。

  1. Vue ファイルでのプロキシの使用

クロスドメイン リクエストを使用する必要がある Vue 単一ファイル コンポーネントでは、プロキシで定義された /api プレフィックスを直接使用できます。ルール データをリクエストするには、次のようにします。

// 请求当前登录用户信息 axios.get('/api/user').then(response => { this.user = response.data }).catch(error => { console.log(error) })
ログイン後にコピー

上記は、Vue2.0 でクロスドメイン プロキシを構成するための詳細な手順です。プロキシ ルールを使用すると、開発環境で他のドメイン名でインターフェイスを正常にリクエストできるため、フロント エンドとバック エンドの共同開発が容易になります。

以上がvue2.0のクロスドメインプロキシを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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