Vue のクロスドメイン問題の処理と解決策の概要

Vue のクロスドメイン問題の処理と解決策の概要

ネットワークリクエストを送信すると、次の保存情報が表示されます。おめでとうございます。ドメインを越えました。

発信元「XXXXXX」からの「XXXXX」のXMLHttpRequestへのアクセスはブロックされました
CORS ポリシー: プリフライト リクエストへの応答がアクセス制御チェックに合格しません:
要求されたリソースに「Access-Control-Allow-Origin」ヘッダーが存在しません。

1.1 クロスドメインとは何ですか?

クロスドメイン問題は、ブラウザの相同性ポリシーが原因で発生します。相同性とは、2 つのページのプロトコル、ホスト、ポート番号が同じであることを意味します。これは、ブラウザのコア機能であり、最も基本的な機能です。相同性ポリシーがなければ、ブラウザは非常に危険になり、いつでも攻撃を受ける可能性があります。

プロトコル名、ドメイン名、ポート番号のいずれかが異なる場合、クロスドメイン問題が発生します。

ここで強調しておきたいのは、クロスドメイン処理はリクエストが送信されなかったことを意味するわけではないということです。これは、リクエストが正常に送信され、サーバーもデータを返したが、ブラウザがセキュリティ上の理由でそれを拒否したことを意味します。

2.2 クロスドメインの問題を解決するには?

1. 方法1

条件が許せば、バックエンドと通信できます。バックエンドは応答時にレスポンス ヘッダーを追加し、フロントエンドは操作なしでクロスドメインを処理できます。

2. 方法2

Vue スキャフォールディングは非常にシンプルなメソッドを提供します:

cli3 以上を使用している場合、ディレクトリ内に設定ファイルはありません。ルートディレクトリに vue.config.js ファイルを作成し、必要な設定情報を追加する必要があります。

モジュール.エクスポート={
    ページ: {
        索引: {
        //エントリ:"src/main.js",
        },
    },
    開発サーバー: {
        プロキシ: {
            '/api': {
                ターゲット: 'リクエストするURL'、
                パス書き換え:{'^/api':''},
                ws: 真、
                変更元: true
            }
        }
    }
}

サーバーとサーバーの間にクロスドメインの問題がないため、ブラウザではなくバックエンドからデータを要求するためのプロキシ サーバーが作成されます。

このプロキシサーバーのプロトコルドメイン名とポート番号は、プロジェクトを実行するときのプロトコルドメイン名とポート番号と同じです。

http://localhost:8080/api を使用します。データを要求するときに /api を追加すると、クロスドメインを処理する必要があることが認識されます。追加しない場合は、プロジェクトのルートディレクトリ内の対応するデータにアクセスすることになります。

3. 方法3

jsonp を使用していますが、post、put、patch などの get リクエストのみを処理できます。

これで、Vue のクロスドメイン処理の問題に関するこの記事は終了です。Vue のクロスドメイン処理に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue はクロスドメインの問題を解決します (推奨)
  • Vue プロジェクト展開のクロスドメイン問題の詳細な解決プロセス
  • Vueプロジェクト構成のクロスドメインアクセスとプロキシ設定方法
  • Vue クロスドメイン処理方法 (Vue プロジェクトでの baseUrl 設定の問題)

<<:  Tcl言語に基づくシンプルなネットワーク環境を構成するプロセスの分析

>>:  MySQLデータベース最適化技術の簡単な紹介

推薦する

HTM と HTML の違いは何ですか? HTM と HTML の違いは何ですか?

Web デザインを学習する過程で、html と htm の関係など、遭遇した多くの問題について深く...

Centos7 での NFS サービス構築の紹介

目次1. サーバー2. クライアント3. テストサービス1. サーバー1. YUMソースを使用してN...

Dockerはdockerfileを使用してnode.jsアプリケーションを起動します

Dockerfileの作成expressによって自動的に作成されたディレクトリを例にとると、ディレク...

MySQLの大文字と小文字の区別によって発生する問題の分析

MYSQLは大文字と小文字を区別します言葉を見れば信じられます。タイトルを見れば内容がわかります。 ...

Docker は固定コンテナ IP アドレスを実現するためにカスタム ネットワークを作成します。

デフォルトのブリッジ ネットワークのため、コンテナーを再起動すると IP アドレスが変更されます。シ...

Linux で MySQL データベースのスケジュールされたバックアップを実装する簡単な方法

詳細な手順は次のとおりです。 1. ディスク容量を確認します。 [root@localhost バッ...

Vueルーティングはページステータスを復元する操作メソッドを返します

ルートパラメータ、ルートナビゲーションガード: ページが戻ったときに検索結果を保持する需要シナリオ:...

Win 8 以降での最新の MySQL バージョン 5.7.17 (64 ビット ZIP グリーン バージョン) のインストールと展開のチュートリアル

まず、ブロガーはコミュニティ バージョンをプレイしていますが、学習とテストにはこれで十分です。 Bl...

Tencent Cloud Server Tomcat ポートにアクセスできない場合の解決策

最近、Tencent Cloudを使用してサーバーを設定しました。使用中に、tomcatポートにアク...

MySQLとSpringの自動コミットの詳細な説明

1 MySQLの自動コミット設定MySQL はデフォルトで自動的にコミットします。つまり、各 DML...

$remote_addr に基づく nginx フロントエンド配布方法の詳細な説明

要件は次のとおりです。ドメイン名の下に複数のサーバーがあります。現在、特定の地域をテストしています。...

cmd と python での MySQL の一般的な操作についての簡単な説明

環境設定1: MySQLをインストールし、MySQLのbinディレクトリを環境変数に追加する環境設定...

uni-app WeChatアプレット認証ログイン実装手順

目次1. appIDの申請と設定1. appidの取得方法2. AppIDの設定2. 基本的なユーザ...

Mysql一時テーブルの原理と作成方法の分析

この記事は主にMysql一時テーブルの原理と作成方法を紹介します。この記事のサンプルコードは非常に詳...