ホームページ > ウェブフロントエンド > jsチュートリアル > Ajaxクロスドメインアクセスとは

Ajaxクロスドメインアクセスとは

(*-*)浩
リリース: 2020-09-18 10:07:23
オリジナル
6635 人が閲覧しました

AJAX クロスドメイン アクセスとは、ユーザーが Web サイト A にアクセスすると、Web サイト B へのすべてのクロスドメイン アクセス リクエストが Web サイト A の指定されたページに送信されることを意味します。つまり、Ajax は、ターゲット アドレスがローカル以外のドメイン (プロトコル、ドメイン名、ポートが異なる) である Web リソースをリクエストし、その応答に基づいて外部アプリケーション データを取得します。

Ajaxクロスドメインアクセスとは

Ajax は、ターゲット アドレスがローカル以外のドメイン (プロトコル、ドメイン名、ポートが異なる) である Web リソースをリクエストし、外部アプリケーションを取得します。応答に基づいたデータ。たとえば、Ajax を使用して都市の天気予報や IP アドレスなどの公共サービス インターフェイスにアクセスする場合、クロスドメインが関係します。外部サービスをリクエストすると、ブラウザーはセキュリティの問題に基づいて承認されたアクセスを拒否します。

script、script、および iframe タグの src 属性にはクロスドメインの問題がないため、Ajax クロスドメインはこれと JS の JSON サポートを利用します。外部サービスは JS に応答するだけで済みます。 Ajax リクエストのコード、または Ajax で JSON データを取得できます。

セキュリティ上の理由により、クライアント JS はソース Web サイトにリクエストを送信するために xmlhttprequest のみを使用できます。たとえば、www.readlog.cn の test.readlog.cn からデータをリクエストすることはできません。ただし、解決策はたくさんあります。ここで整理してみましょう。

解決策 1 Web プロキシ メソッド (サーバー A)

このページはユーザー ページを置き換えて対話を完了し、適切な結果を返します。このソリューションは、現段階で考えられるクロスドメイン アクセスの問題のほとんどを解決できますが、Web サイト A が Web プロキシ サポートを提供する必要があるため、Web サイト A と Web サイト B は密接に連携し、各対話プロセス、サーバーが必要になります。 WebサイトAの負担が大きくなり、ユーザーに代わってセッション状態を保存できなくなります。

解決策 2. オンデマンド方式 (サーバー A)

MYMSN のポータルはこの方式を使用していますが、MYMSN にはクロスドメイン アクセスの問題はありません。新しい

解決策 3. iframe メソッド (サーバー A)
JavaEye でクロスドメイン アクセスに関する投稿を確認しましたが、それが目覚めました。 iframeを使用したクロスドメインアクセスの問題。データの送信と取得に iframe を使用することは確かに可能ですが、親ウィンドウと子ウィンドウは対話できないため (クロスドメイン アクセスの場合、この対話は拒否されます)、親ウィンドウへの影響を完了できません。
ページ内に他の Web サイトを指す IFRAME を埋め込むか動的に生成すると、2 つの Web ページは互いのアンカー ハッシュ フラグメントを変更することでメッセージを送信できます。 Web ページのアンカー ハッシュ フラグメントを変更しても、ブラウザは Web ページをリロードしないため、Web ページの状態は維持され、Web ページ自体がタイマーを通じてアンカー ハッシュの変更を検出し、そのアンカー ハッシュの変更を変更できます。それに応じて独自のアンカー ハッシュ フラグメントの状態。

解決策 4. ユーザー ローカル ダンプ メソッド (ローカル)
Windows プラットフォームに接続されている IE 自体の特性により、メモリを使用して「バイパス」する iframe ベースのメソッドが提供されます。 「解決策は、クライアント上の Windows クリップボードを介して 2 つのウィンドウ間でデータを送信できることです。必要なのは、ポーリング用のデータを受信する側で間隔を設定し、結果を取得した後に間隔をクリアすることだけです。 FF のプラットフォームの独立性により、クリップボード方式がサポートされていないことが判断され、FF の以前のバージョンのプラグインの脆弱性は修正されているため、FF はメモリを介した秘密の通過を完了できません。また、FF はファイル操作をサポートしていないため (Cookie を使用してドメイン間でデータ転送を完了することはできません)、この技術的方法は IE でのみ使用できます。

解決策 5: (実際、サーバー B との通信の問題は、サーバー A で iframe を使用することで解決されます)
解決すべき問題: ユーザーがWeb ページの URL (タグ、メモなども含む) をブックマーク サーバーに送信します。
URL を送信するには少なくとも 3 つの方法があります:
1. ブックマーク サーバーの送信ページにログインし、このページを通じて収集する URL をサーバーに送信します。
2. ブラウザ プラグインをインストールし、プラグインを通じて URL をサーバーに送信します。
3. JavaScript ガジェットをブックマーク サーバーから現在のページに動的にロードし、それを使用して送信作業を完了します。

最初の方法は開発が最も簡単ですが、ユーザーにとっては面倒です。送信を完了するために毎回ブックマーク サーバーにログインする必要があります。2 番目の方法はプラグインでは馴染みがありません。私はプラグインが多すぎてブラウザがいっぱいになるのが好きですが、3 番目の方法は開発が簡単で、毎回サーバーにログインする手間も省けるので、最終的にこれを採用しました。ユーザーが情報 (URL、タグ、メモなど) を入力するための UI を生成することに加えて、3 番目のメソッドで動的にロードされる JavaScript ガジェットは、ユーザーが送信をクリックしたときにサーバーと通信する機能も完了する必要があります。

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート