フロントエンド開発における Vue の幅広い用途に伴い、Vue のクロスドメインの問題に遭遇する開発者も増えています。 Vue のクロスドメインの問題は通常、サーバー インターフェイス アドレスとフロントエンド Web ページ アドレスの間のドメイン名が異なることが原因で発生します。この記事では、Vue のクロスドメイン問題の原因と解決策を探っていきます。
クロスドメインの問題は、同一生成元ポリシーが原因で発生します。同一オリジン ポリシーとは、同じドメイン名、プロトコル、ポートで構成される URL のみが相互にアクセスできることを意味します。たとえば、a.example.com と b.example.com は異なるドメイン名であり、それらの間の通信はクロスドメイン通信です。
同一生成元ポリシーの制限がなければ、悪意のある Web サイトは他の Web サイトにあるユーザーのデータに自由にアクセスでき、ユーザーのプライバシーとセキュリティが脅かされます。したがって、ブラウザーは、異なるドメイン名間の通信に同一生成元ポリシーの制限を課します。
フロントエンド プロキシの方法は、すべてのリクエストをバックエンド サーバーに送信することです。フロントエンド Web ページと同じドメイン上にある場合、バックエンド サービスはリクエストをターゲット インターフェイスに送信します。 Vue プロジェクトを例に挙げると、axios ライブラリを使用してフロントエンド プロキシを実装できます。
リリース環境では、Vue プロジェクトをバックエンド サーバーにデプロイできるため、クロスドメインの問題が発生した場合にプロキシ操作が不要になります。ローカルで開発する場合、vue.config.js
ファイルでプロキシを構成して、ターゲット インターフェイスへのアクセスを実現できます。
module.exports = { devServer: { proxy: { '/api': { target: 'http://localhost:3000', changeOrigin: true, pathRewrite: { '^/api': '' } } } } }
この設定は、/api
で始まるすべてのリクエストをプロキシ経由で http://localhost:3000
およびプロキシ アドレス ## に送信することを意味します。 #changeOrigin は true に設定されます。
const Koa = require('koa'); const cors = require('@koa/cors'); const app = new Koa(); app.use(cors());
koa2-cors ミドルウェアを使用していることを示しています。ここでは npm を使用して koa2-cors ミドルウェアをインストールしますが、使用方法は他のミドルウェアと同じです。
Access-Control-Allow-Origin を使用して、アクセスを許可するドメイン名またはフロントエンド IP アドレスを設定できます。例:
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader("Access-Control-Allow-Origin", "http://www.example.com");
以上がVue のスパンの問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。