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データベース最適化技術の簡単な紹介

推薦する

mysql エラー 1045 (28000) - ユーザーへのアクセスが拒否される問題を解決する方法

問題の説明 (以下の説明は Windows 環境に限定されます): D:\develop\ide\m...

ウェブテーブルフレームを作成するためのヒント

<br />Web テーブル フレームを作成するためのヒント。 ------------...

EclipseのプロジェクトをTomcatに追加できない問題を解決する方法

1. プロジェクトを右クリックしてプロパティを選択します2. プロジェクトファセットをクリック3. ...

要素の水平方向の中央揃えを実現する3つの方法と、固定レイアウトとフローレイアウトの概念の理解

CSS でテキストを中央揃えにするプロパティは非常に簡単に実現できます。text-align:cen...

MySQL 8.0 における MySQL のインストールと新しいパスワード認証方法の詳細な説明

1. はじめにOracle が MySQL 8.0GA をリリースしました。海外での GA はリリー...

Ubuntu 18.04 のインストールで「ldlinux.c32 のロードに失敗しました」というエラーが表示され、解決手順がわかりません

序文私は Win7 を搭載した古いラップトップを持っています。古いシステムを維持しながら、同時に U...

VMware14 に CentOS 7 をインストールするグラフィック チュートリアル

CentOS の紹介CentOS は、Red Hat Linux が提供する無料で利用できるソースコ...

JS関数の継承について学ぶ記事

目次1. はじめに: 2. プロトタイプチェーン継承: 3. コンストラクタ継承の借用(オブジェクト...

Vueコンポーネント通信方法事例まとめ

目次1. 親コンポーネントが子コンポーネントに値を渡す(props) 2. サブコンポーネントは親コ...

MySQL マルチバージョン同時実行制御 MVCC の実装

目次MVCCとはMVCC 実装MVCC はファントム リードを解決しますか? MVCCとはMVCC ...

MySQL 8.0 再帰クエリの簡単な使用例

序文この記事では、MySQL 8.0 の新機能を使用して再帰クエリを実装します。詳細なサンプル コー...

nginx を https をサポートするように設定するためのサンプル コード

1. はじめにあなたのウェブサイトはまだインターネット上に公開されたままですか?ここでは、HTTPS...

CSSの絶対と相対について

冒頭にこう書かれています:アブソリュートは言った。「親戚よ、私はあなたを私の人生で見たくない!」なぜ...

Webデザインチュートリアル(2):模倣と盗作について

<br />前回の記事では、Webデザインの手順と方法を紹介しました。詳細については、前...

MySQLインデックスの詳細

1. インデックスの原則インデックスは、列内の特定の値を持つ行をすばやく見つけるために使用されます。...