ホームページ >ウェブフロントエンド >jsチュートリアル >クロスドメイン Web 開発の使用方法

クロスドメイン Web 開発の使用方法

php中世界最好的语言
php中世界最好的语言オリジナル
2018-04-18 10:00:091655ブラウズ

今回は、クロスドメイン Web 開発の使用方法について説明します。クロスドメイン Web 開発を使用する際の 注意事項 は何ですか?実際の事例を見てみましょう。

Web 開発の過程で、誰もがクロスドメインに触れることがありますが、クロスドメインとは何なのか、Web 開発におけるクロスドメインを解決する方法を知らない人はたくさんいます。次の記事でこれについて詳しく説明します。興味があれば、クロスドメインとクロスドメインのソリューションについて学びましょう。

クロスドメインとは何ですか?

概念は次のとおりです: プロトコル、ドメイン名、ポートが異なる限り、それらは別のドメインとみなされます

以下は、特定のクロスドメイン状況の詳細な説明です

URL 説明 通信を許可するかどうか http://www.a.com/a.js、http://www.a.com/b.js 同じドメイン名で 許可します http://www.a.com/lab/a.js、http://www.a.com/script/b.js 同じドメイン名の下にある異なるフォルダー 許可します http://www.a.com:8000/a.js、http://www.a.com/b.js 同じドメイン名、異なるポート 許可されません http://www.a.com/a.js、 同じドメイン名、異なるプロトコル 許可されません http://www.a.com/a.js、http://70.32.92.74/b.js ドメイン名とドメイン名に対応するIP 許可されません http://www.a.com/a.js、http://script.a.com/b.js メインドメインは同じですが、サブドメインが異なります 許可されません (この場合、Cookie へのアクセスは許可されません) http://www.a.com/a.js、http://a.com/b.js 同じドメイン名、異なる第 2 レベル ドメイン名 (上記と同じ) 許可されません (この場合、Cookie へのアクセスは許可されません) http://www.cnblogs.com/a.js、http://www.a.com/b.js 異なるドメイン名 許可されません

1. document.domain クロスドメイン

原則: 同じメイン ドメイン名の下にあり、異なるサブドメイン名を持つページは、同じドメインを持つように設定できますdocument.domain

制限事項: 同じドメイン内のドキュメントはページ間の相互運用性を提供し、iframe ページをロードする必要があります

次のドメイン名のページは、document.domain を通じてドメイン間で相互運用できます: http://a.com/foo、http://b.a.com/bar、http://c.a.com/bar。 ただし、ページの相互運用は、ページのネストの形式でのみ実行できます。たとえば、一般的な iframe メソッドでページのネストを完了できます

// URL http://a.com/foo
var ifr = document.createElement('iframe');
ifr.src = 'http://b.a.com/bar'; 
ifr.onload = function(){
    var ifrdoc = ifr.contentDocument || ifr.contentWindow.document;
    ifrdoc.getElementsById("foo").innerHTML);
};
ifr.style.display = 'none';
document.body.appendChild(ifr);
。 上記のコードが配置されている URL は http://a.com/foo で、http://b.a.com/bar への DOM アクセスには、後者で document.domain を 1 つ上のレベルに設定する必要があります

// URL http://b.a.com/bar
document.domain = 'a.com'
document.domain はサブドメインからメイン ドメインにのみ設定できます。それ以降の設定や他のドメイン名への設定は許可されません。Chrome で表示されるエラーは次のとおりです

。 キャッチされない DOMException: 'Document' の 'domain' プロパティの設定に失敗しました: 'baidu.com' は 'b.a.com' のサフィックスではありません

2. srcタグがあります

原則:
https://www.a.com/b.js