js は、クロスドメイン アテンション ポイント分析_JavaScript スキルを達成するために document.domain を設定します

WBOY
リリース: 2016-05-16 15:58:09
オリジナル
1504 人が閲覧しました

この記事の例では、クロスドメイン実装を実現するために js で document.domain を設定する際の注意点を分析します。皆さんの参考に共有してください。具体的な分析は次のとおりです。

ドキュメント.ドメイン
現在の Web ページのドメイン名を取得するために使用されます。
たとえば、アドレスバーに次のように入力します:

コードをコピー コードは次のとおりです。
javascript:alert(document.domain); //www.jb51.ネット

document.domain 属性に値を割り当てることもできますが、現在のドメイン名または基本ドメイン名にのみ割り当てることができるという制限があります。
例:

コードをコピーします コードは次のとおりです。
javascript:alert(document.domain = "jb51.net"); //jb51 .net
javascript:alert(document.domain = "www.jb51.net") //www.jb51.net

www.jb51.net が現在のドメイン名であり、jb51.net が基本ドメイン名であるため、上記の割り当てはすべて成功します。

しかし、次の代入では「無効なパラメータ」エラーが発生します:

コードをコピーします コードは次のとおりです。
javascript:alert(document.domain = "cctv.net"); //パラメータが無効です
javascript:alert(document.domain = "www.jb51.net"); //無効なパラメータ

cctv.net と www.jb51.net は現在のドメイン名でも、現在のドメイン名のベース ドメイン名でもないため、エラーが発生します。
これは、誰かが document.domain を悪意を持って変更して、ドメイン間でデータを盗むのを防ぐためです。

document.domain を使用してクロスドメインを実現します:

前提条件: これら 2 つのドメイン名は同じ基本ドメイン名に属している必要があり、使用されるプロトコルとポートは一貫している必要があります。そうでない場合、document.domain はクロスドメイン

に使用できません。

JavaScript では、セキュリティ上の理由から、異なるドメインの 2 つ以上のページの相互運用が禁止されています。
同じドメインのページは問題なく相互運用できます。

例えば、aaa.com の Web ページ (a.html) では、iframe を使用して bbb.com の Web ページ (b.html) が紹介されます。
このとき、b.htmlの内容はa.htmlでも見ることができますが、javascriptを使って操作することはできません。 2 つのページは異なるドメインに属しているため、js は操作する前に 2 つのページのドメインが等しいかどうかを確認し、等しい場合は操作を許可します。等しくない場合は操作が拒否されます。
JSを使用してa.htmlとb.htmlを同じドメインに変更することはできません。ベースドメイン名が等しくないためです。 (JS でそれらを等しいフィールドに強制的に変更すると、上記と同じ「無効なパラメーター エラー」が報告されます)

したがって、aaa.com の別の Web ページを a.html に導入しても、ドメインは等しいため問題はありません。

別の状況として、2 つのサブドメインがあります:

aaa.xxx.com
bbb.xxx.com

aaa の Web ページ (a.html) は bbb の Web ページ (b.html) を導入します。
現時点では、b.html のコンテンツを a.html で操作することはできません。
document.domain が異なるため、1 つは aaa.xxx.com、もう 1 つは bbb.xxx.com です。

現時点では、JavaScript を通じて 2 つのページのドメインを同じに変更できます。
a.html と b.html の両方を追加する必要があります:

コードをコピー コードは次のとおりです:
document.domain = "xxx.com";

このようにして、2 つのページを相互に操作できます。つまり、同じ基本ドメイン名間の「クロスドメイン」が実現されます。

この記事が皆様の JavaScript プログラミング設計に役立つことを願っています。

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