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

推薦する

Windows 2016 Server セキュリティ設定

目次システムアップデート構成Windows Update サーバーの変更自動更新を有効にして許可する...

JavaScript で円形カルーセルを実装する

この記事では、円形カルーセルを実装するためのJavaScriptの具体的なコードを参考までに紹介しま...

txt ブックの内容を Web ページに表示するコード

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1...

MySQLクラスタのDockerデプロイメントの実装

シングルノードデータベースの欠点大規模なインターネットプログラムはユーザーベースが大きいため、アーキ...

MySQL パフォーマンス最適化インデックス プッシュダウン

インデックス条件プッシュダウン (ICP) は MySQL 5.6 で導入され、クエリを最適化するた...

フロートとBFCをクリアするCSSメソッド

イギリスBFC: ブロック書式設定コンテキストBFCレイアウトルール内箱は縦方向に次々に配置されます...

MySQLの読み書き分離により挿入後にデータが選択されなくなる問題を解決

MySQLは独立した書き込み分離を設定します。コードに次のものを書くと問題が発生する可能性があります...

TinyEditorはシンプルで使いやすいHTML WYSIWYGエディタです

数日前、国産の XHTML エディタを紹介しました。今日は、有名な海外の Web デザイン ブログl...

Centos8 で NIS ドメイン サービスをセットアップおよび構成するための詳細な手順

目次NIS の紹介ネットワーク環境: 1. 環境の準備(両方のノードが必要) 2.nisマスターサー...

insert と select を組み合わせて、「データベース内のフィールドの最大値 + 1 を挿入する」メソッドを実装する

この記事はmysqlデータベースです質問 1 表 1 のデータを表 2 にインポートします。表 1 ...

バッテリー残量が少なくなったときに Linux を自動シャットダウンする方法

序文最近、私の住居の電力事情が不安定で、突然の停電が頻繁に起こります。ノートパソコンを持っているので...

.Net Core を使用して数千万のデータを MySQL にインポートする手順

目次事前準備実施方法: 1. 単一のデータを挿入する2. マージデータ挿入3. MySqlBulkL...

Linuxはjoin -a1を使用して2つのファイルを結合します

次の2つのファイルを結合するには、それらを結合して1.txtに結合します。 # 1.txt ジェリー...