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 間で仮想マシンを移行する (画像とテキスト)

推薦する

Docker基盤技術の適用に関する詳細な説明 名前空間Cgroup

Docker の基盤技術: Docker の基盤となる 2 つのコア テクノロジーは、名前空間とコ...

CSSはコンテンツの高さが足りない場合にフッターを自動的に下部に固定します

UI カットのプロセスでは、ページはヘッダー、コンテンツ、フッターの 3 つの部分で構成されることが...

WeChatアプレットが連携メニューを実現

最近はコース設計を実現するために、フロントエンドも少しやっています。今日はいくつかの機能を実現するた...

ローカルストレージにブール型の値を保存する際の落とし穴を解決する

LocalStorageはブール値を保存します今日、ブール値データを保存するために localsto...

WAMPにインストールするとMySQLが起動できるが、再起動後に起動できなくなる問題の解決方法

初めてwampをインストールした後、すべてのサービスが正常に使用できますが、再起動するとwampのア...

C++ TpeScriptシリーズのジェネリックについて

目次1. テンプレート2. ジェネリック3. ジェネリック再帰4. デフォルトのジェネリックパラメー...

非常に実用的なMySQL関数の包括的な概要、詳細な例の分析チュートリアル

目次1. MySQLの関数の説明2. 単行関数の分類3. キャラクター機能4. 数学関数5. 日付と...

横スクロールウェブサイトデザインの概要

水平スクロールはあらゆる状況に適しているわけではありませんが、適切に行えば、Web サイトを他のサイ...

練習と面接のための Linux シェル スクリプトのヒント 9 つを共有する

予防1) 先頭にインタープリターを追加します: #!/bin/bash 2) 構文のインデントに 4...

React で複数の setStates が何回呼び出されるのでしょうか?

目次1. 2 つの setState を何回呼び出すのですか? 2. 2 つの setState の...

MySQL 5.7.18 無料インストール版ウィンドウ設定方法

初めてのブログです。データベースの勉強を始めた頃のことを書いています。自分でダウンロードしたのですが...

jQueryのコア機能とイベント処理の詳細な説明

目次イベントページの読み込みイベント委任イベントの切り替えイベント要約するイベントページの読み込み1...

Spring Boot + jar パッケージングのデプロイメント Tomcat 404 エラーの問題を解決する

1. Spring Boot は jsp jar パッケージをサポートしていません。jsp は wa...

MySQL の連結で複数の一重引用符と三重引用符を使用する際の問題

文字列を動的に連結する場合、文字連結を使用することが多いです。次のような連結の引用符の意味がわかりま...

MySQL 集計関数のソート

目次MySQL 結果のソート - 集計関数環境クエリ結果の並べ替えクエリのグループ化と集約生徒の平均...