検索

クロスドメインの詳細な紹介

Jun 26, 2017 am 11:42 AM
勉強理解する

クロスドメイン戦略を学ぶには、まずクロスドメインの理由を知る必要があります:

ブラウザの同一オリジンポリシーは、クロスサイトスクリプティング攻撃を防ぐために、クライアント側のスクリプト (JavaScript など) がクロスドメインを実行することを禁止しています。 -site は、異なるドメインのサービスを呼び出します。

より具体的には、Web サイトが要求するプロトコル名、ホスト、またはポート番号のいずれかが異なる場合、Web サイト間のデータ送信はクロスドメイン呼び出しを形成します。

この記事のすべての例は、サーバーとして Node.js を使用して実行されます。同時に、異なるポート番号の例も示されています。今回は 2 つの

ポート番号が使用されます。

まず、図に示すようにフォームを構築します:

通常の非クロスドメインリクエストの場合、通常は次のようになります:

html:

Front-end js部分 (ajax) :

サーバーコード:

注: post メソッドの内容は、Node.js の強力なモジュールを使用してここで読み取られます。すべての post データは、これを使用して受け入れられます。

リクエストページによって返される結果は次のとおりです:

現在の戻り結果はポート3001にアクセスするものなので、ポート3002にアクセスするとどうなるでしょうか?

はい!彼はこうなってしまったのです!ポート番号を越えたアクセスは許可していません。 ! !

しかし、サーバー コンソールには次の出力があります:

これは何を意味しますか?次に、コードを添付して少しずつ説明します:

ajax リクエスト部分の値が変更されました url 部分:

つまり、ポート番号 3001 が 3002 に置き換えられ、残りはまったく同じです上記と同じです。

サーバー コードは、ポート 3002 をリッスンする点を除いて、上記と同じです。

このコードを通して、ポート番号が異なっていても、ajax のサーバーは引き続き実行できることがわかります。フロントデスクからデータを受け取ります

つまり、上記の制御です。ステーションによって出力されたデータは、サーバーがクロスサイトリクエストを拒否しているのではなく、サーバー

が制限されており、サーバーによって傍受されていることを示しています。ブラウザがデータを受信して​​戻り値を処理するとき。

もちろん、クロスドメイン制限を解決するには多くの方法がありますが、ここではそのうちの 4 つを紹介します:

1. JSONP を使用してクロスドメイン呼び出しを実装する

まず、JSONP について段落で紹介します。 :

JSONP は JSON の一部です この使用モデルは、主流のブラウザーのクロスドメイン データ アクセスの問題を解決できます。原則として、XmlHttpRequest オブジェクトは同一オリジン ポリシーの影響を受けますが、<script> タグ要素はクロスドメイン サーバーにスクリプトを読み込むことができ、Web ページは動的に生成できます。他のソースからの JSON データ。 JSONP を使用して取得された </script>

は JSON データではなく、直接実行できる JavaScript ステートメントです。

(1)Jqueryの$ajaxを使ってjsonpを実装する

diedie は jsonp の実装に使用されます この時点で、ブラウザコンソールは次のように出力します:

」これを見てください:

これは上記のリクエストのhttpヘッダー情報です。URLは実際にはgetメソッドに従ってパラメータを渡すため、サーバーはgetメソッドを使用してデータを受け取ります

gt;

(2)JSネイティブ&lt; script&gt;を使用して、クリックしてヘッドノードに追加し、リクエストの返された結果としてSRCを設定します。サイドコードと上記のjsonpも同じ);

ネイティブスクリプトタグメソッドを通して、jsonpには次の欠点があることがわかります:

1.リクエストの送信にはgetメソッドしか使用できません

2.同時に, この方法はajaxとは関係がないため、デバイスの状態を監視するためのイベントを登録できず、エラーを簡単に検出できません。

2.CORS はクロスドメイン呼び出しを実装します

別の段落を借りて CORS を紹介します:

Cross-Origin Resource Sharing (CORS) クロスオリジン リソース共有はブラウザ テクノロジの仕様です。ブラウザーの同一生成元ポリシーを回避するために、Web サービスが異なるドメインからサンドボックス スクリプトを送信する方法を提供します。これは、JSONP モードの最新バージョンです。 JSONP とは異なり、CORS は GET リクエスト メソッドに加えて他の HTTP リクエストもサポートします。

を使用すると、Web デザイナーは一般的な XMLHttpRequest を使用できるようになり、JSONP よりも優れたエラー処理が可能になります。一方、JSONP は CORS をサポートしていない古いブラウザーでも動作します。最新のブラウザは CORS をサポートしています。

CORS の場合、これらのヘッダー メッセージを記述するだけで済み、残りの部分はブラウザーが自動的に実行します。

CROSの利点は明らかで、get、post、putなどのマルチモードリクエストをサポートできます。送信には依然としてXmlHttpRequestを使用します ステータスを監視するためにイベントを登録でき、エラー処理が優れています。
もちろん、下位バージョンのブラウザをサポートしていないという欠点もあります。

以上がクロスドメインの詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Python vs. JavaScript:学習曲線と使いやすさPython vs. JavaScript:学習曲線と使いやすさApr 16, 2025 am 12:12 AM

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

Python vs. JavaScript:コミュニティ、ライブラリ、リソースPython vs. JavaScript:コミュニティ、ライブラリ、リソースApr 15, 2025 am 12:16 AM

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

C/CからJavaScriptへ:すべてがどのように機能するかC/CからJavaScriptへ:すべてがどのように機能するかApr 14, 2025 am 12:05 AM

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

JavaScriptエンジン:実装の比較JavaScriptエンジン:実装の比較Apr 13, 2025 am 12:05 AM

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

ブラウザを超えて:現実世界のJavaScriptブラウザを超えて:現実世界のJavaScriptApr 12, 2025 am 12:06 AM

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)Apr 11, 2025 am 08:23 AM

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合)Apr 11, 2025 am 08:22 AM

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

JavaScript:Web言語の汎用性の調査JavaScript:Web言語の汎用性の調査Apr 11, 2025 am 12:01 AM

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい