Ajax は CORS レスポンス ヘッダーを設定してクロスドメインの問題を解決し、クロスドメインのケース スタディを実現します。

Ajax は CORS レスポンス ヘッダーを設定してクロスドメインの問題を解決し、クロスドメインのケース スタディを実現します。

1. クロスドメインを実現するためにCORSレスポンスヘッダーを設定する

クロスオリジンリソース共有 (CORS)

1.1 CORSとは何か

CORS (Cross-Origin Resource Sharing)、クロスオリジン リソース共有。 CORS は公式のクロスドメイン ソリューションです。クライアント側で特別な操作を必要とせず、サーバー側で完全に処理されるのが特徴です。get リクエストと post リクエストをサポートします。クロスオリジン リソース共有標準では、一連の HTTP ヘッダー フィールドが追加され、サーバーはブラウザーを通じてどのオリジンがどのリソースにアクセスできるかを宣言できるようになります。

1.2 CORS はどのように機能しますか?

CORS は、リクエストがドメインをまたぐことが許可されていることをブラウザに伝えるために、レスポンス ヘッダーを設定します。レスポンスを受信すると、ブラウザはレスポンスを解放します。

1.3 CORS は何の目的で使用されますか?

ここに画像の説明を挿入

ajaxデモ.html

<!DOCTYPE html>
<html lang="ja">

<ヘッド>
    <メタ文字セット="UTF-8">
    <meta name="viewport" content="width=デバイス幅、初期スケール=1.0">
    <title>CORS</title>
    <スタイル>
        #結果 {
            幅: 200ピクセル;
            高さ: 100px;
            境界線: 実線 1px #90b;
        }
    </スタイル>
</head>

<本文>
    <button>リクエストを送信</button>
    <div id="結果"></div>
    <スクリプト>
        const btn = document.querySelector('ボタン');

        btn.onclick = 関数(){
            //1. オブジェクトを作成する const x = new XMLHttpRequest();
            //2. 初期化設定 x.open("GET", "http://127.0.0.1:8080/cors-server");
            //3. 送信 x.send();
            //4. イベントをバインドする x.onreadystatechange = function () {
                (x.readyState === 4)の場合{
                    (x.status >= 200 && x.status < 300) の場合 {
                        document.getElementById('result').innerText = x.response;
                    }
                }
            }
        }
    </スクリプト>
</本文>

</html>

ここに画像の説明を挿入

サーバー.js

//1. エクスプレスをインポートする
定数 express = require('express');

//2. アプリケーション オブジェクトを作成する const app = express();
 
//3. ルーティングルールを作成する // request はリクエストメッセージのカプセル化です // response はレスポンスメッセージのカプセル化です app.all('/cors-server', (request, response)=>{
    // レスポンス ヘッダーを設定します response.setHeader("Access-Control-Allow-Origin", "*"); // すべてのクロスドメイン リクエストを許可します* 
    // response.setHeader("Access-Control-Allow-Origin", "http://127.0.0.1:5500"); // 指定されたリクエストがドメイン間をまたぐことを許可する // response.setHeader("Access-Control-Allow-Headers", '*'); // カスタム リクエスト ヘッダー タグを許可する // response.setHeader("Access-Control-Allow-Method", '*'); // すべてのリクエストがドメイン間をまたぐことを許可する *
    // response.setHeader("Access-Control-Allow-Method", 'get'); // ドメインを越えた get リクエストを許可する response.send('hello CORS');
});


//4. サービスを開始するためのリスニングポート app.listen(8080, () => {
    console.log("サービスが開始されました。ポート 8080 がリッスンしています...");
});

サービスnodemon server.jsを起動します

ここに画像の説明を挿入

実行結果:

ここに画像の説明を挿入

Ajax クロスドメイン ソリューションと、クロスドメイン ケースの詳細を実現するための CORS 応答ヘッダーの設定に関するこの記事はこれで終わりです。より関連性の高い Ajax クロスドメイン ソリューションのコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • 3レベルリンク省および市町村のAjaxコード
  • JSON、AJAX、Maven の基礎
  • Ajax ログイン検証実装コード
  • アヤックスは州、都市、地区間の連携を実現
  • シンプルなページング効果を実現するjQuery+Ajax
  • Ajax の予備実装 (vscode+node.js+express フレームワークを使用)
  • AJAX を使用して Django バックエンド データを取得する方法
  • Ajax の JavaScript ソリューションにおける parsererror エラー ケースの詳細な説明

<<:  MySQL における 8 つの一般的な SQL 使用例

>>:  VMware Workstation と vSphere 間で仮想マシンを移行する (画像とテキスト)

推薦する

Apache ab同時負荷ストレステストの実装方法

腹筋コマンドの原則Apache の ab コマンドは、マルチスレッドの同時リクエストをシミュレートし...

SMS送信のカウントダウンを実装するJavaScript

この記事では、SMS送信のカウントダウンを実装するためのJavaScriptの具体的なコードを参考ま...

VUE ユニアプリライフサイクルに関する簡単な説明

目次1. アプリケーションライフサイクル2. ページのライフサイクルコンポーネントライフサイクル要約...

jsドラッグ効果の原理と実装

ドラッグ機能は主に、ドラッグによる並べ替え、ポップアップ ボックスのドラッグと移動など、ユーザーがカ...

Vue で axios を使用して画像をアップロードするときに発生する問題

目次FormDataとは何ですか? vueとaxiosの協力による実践的な体験追加()セット()消去...

MYSQL の COLLATE とは何ですか?

序文MySQL で show create table <tablename> コマンド...

ファイルが存在するかどうかを判断する JavaScript サンプルコード

1. ビジネスシナリオ最近はファイルのアップロードやダウンロードに関する開発をしています。ダウンロー...

SQL 文における複合主キーと結合主キーに関する予備的研究

1. 複合主キーいわゆる複合主キーとは、テーブルの主キーが複数のフィールドで構成され、ビジネス上の意...

Dockerボリュームコンテナ間のデータ共有の実装

ボリュームとは何ですか?ボリュームは英語で容量を意味し、Docker ではデータ ボリューム、つまり...

CentOS6 アップグレード glibc 操作手順

目次背景glibc 2.14をコンパイルするソフトリンクを変更するやっと背景テスト環境には Cent...

JavaScript の静的スコープと動的スコープを例を使って説明します

目次序文静的スコープと動的スコープ静的スコープ実行プロセス動的スコープ実行プロセスエクササイズ練習1...

Ubuntu 18.04 で SSH サービスをインストールして設定する方法

sshツールをインストールする1. ターミナルを開き、次のコマンドを入力します。 apt-getアッ...

overflow:autoの使い方の詳しい説明

本文に入る前に、オーバーフローとフレックスレイアウトの使い方をいくつか紹介します。 overflow...

デザイン理論: なぜ私たちは間違った場所を見ているのでしょうか?

数日前、バスで仕事に行きました。バスのカードリーダーの実際の使用シーンを実際に見て、カードリーダーの...

Nginx のタイムドログカットの詳細な説明

序文デフォルトでは、Nginx ログはファイルに書き込まれます。各ドメインのログを区別するために、通...