ワン:クロスドメインとは何ですか
コンセプト:
セキュリティ上の理由からJavaScriptは、クロスドメインが他のページの対象に呼び出すことはできません。だから、クロスドメインとは何か、という理由だけ制限のJavaScriptの同一生成元ポリシー、a.comがJSまたはCA-COM b.comドメイン内のオブジェクトのドメイン名の下で動作することができないことを理解しています。
プロトコル、サブドメイン、ドメインマスターは、ポート番号がいずれかと同じでない場合、それらは異なるドメインとしてカウントされます。でもなど、異なるドメイン間での相互の要求リソース、「クロスドメイン。」
たとえば:http://www.abc.com/index.htmlは 要求 http://www.efg.com/service.phpを。
一つのことに注意する必要があります:クロスドメインリクエストは、リクエストが送信することができ、要求を受信し、正常な結果を返すようにサーバーに行くことができないではありませんが、結果は、ブラウザのブロックでした。理由は限られた相同性戦略のクロスドメインの理由は、同一生成元ポリシーが正しく機能しているプロトコル、ドメイン名を通信することが必要で、ポート番号はまったく同じです。
同じドメイン:
いわゆるは、同じドメインを指す、ドメイン名、プロトコル、ポートは同じです
説明:
プロトコル:HTTPプロトコル(HTTPの違いは、彼とhttpsのことである)ドメイン名ドメイン名はwww.baidu.comのようなものです、WWWのような異なるドメイン名、baidu.comとwww.hao123.com: ポート:8080と8081が異なるポートであります
例:
交通許可するかどうかURL :HTTP // www.domain.com/a.js HTTPを://は、同じドメイン名をwww.domain.com/b.js、または別のファイルパスができます HTTPを:// www.domain.com/lab /c.js HTTP:// www.domain.com:8000/a.js HTTP://は、同じドメイン名をwww.domain.com/b.js、別のポートが許可されていません :HTTP // www.domain.com/a .js HTTPS://は、同じドメイン名をwww.domain.com/b.js、異なるプロトコルが許可されていません HTTP:// www.domain.com/a.js HTTP:// 192.168.4.12/b.jsドメイン名とそれに対応するドメイン名同じIP許可していない のhttpを:// www.domain.com/a.js HTTP:// 異なる同じx.domain.com/b.js主要ドメイン、サブドメインは、許可しない HTTPを:// domain.com/c.js HTTP:// WWW。 domain1.com/a.js HTTP:// 異なるドメイン名が許可されていませんwww.domain2.com/b.js
2:同一生成元ポリシー
同一生成元ポリシー:
元ポリシーは、明示的な許可がない状態でのセキュリティ機能ブラウザクライアントスクリプトの異なるソースで、他のリソースを読み書きすることはできません。
元ポリシーの制限:
ソースドキュメントやスクリプトからの負荷の同一生成元ポリシーの制限は、他のソースからのリソースと対話する方法。これは、潜在的に悪質なファイルを隔離するための重要なセキュリティメカニズムです。それは(クッキーを読んで)など、ユーザーのプライバシー情報を保護することがあり、アイデンティティの偽造を防ぎます。
元ポリシーの制限の内容は以下のとおりです。
-
クッキー、のlocalStorage、のIndexedDBストレージおよびその他のコンテンツ
-
DOMノード
-
AJAXリクエストが送信できません
一部のブラウザでは、クロスドメインの制限の対象にはなりません。
1、ページリンク、およびリダイレクトフォームの提出は、同一生成元ポリシーの制限の対象にはなりません。
2、クロスドメインのリソースの導入が可能です。しかし、jsのロードされたコンテンツを読み書きすることはできません。埋め込まれたページ<スクリプトSRC = "..."> </ SCRIPT>、<IMG>、<リンク>、<iframe>のと同様。
三:ドメイン間で共通のアプローチ
1:VUEでのクロスドメインのプロジェクト
なぜなら彼らの共通のフロントエンドフレームワークVUEの、我々は最初のVUEでのクロスドメインに対処する方法について話しています。足場VUE-CLI VUE公式オファーはクロスドメインのインタフェースを処理するために事前にご残しているので、クロスドメイン処理VUEでは、まだ取得するのは非常に簡単です、我々はそれだけで数行のコードを追加する必要があり:,
index.js configフォルダを検索し、ラインproxyTable内側見つけるがあります:{}、これは私たちの滞在のインタフェースであるが、我々は、プロキシルールを追加することで行ってきました
// 例では、 'localhostの:8080 / API / XXX ' エージェント'をwww.example.com/api/xxx'に @ 使用法:https://vuejs-templates.github.io/webpack/proxy.html proxyTable: { ' / API ' :{ ターゲット:' http://xxxxxx.com '、// ドメインインターフェース // セキュア:falseに、 // HTTPSインターフェイスは、このパラメータを設定する必要がある場合 changeOriginを:trueに、// インターフェース間であればドメインは、必要なパラメータは、それが真である、リクエストヘッダは、ルール(アクセス制御、許可原点に設定される ) ターゲットサーバと一致するように {:pathRewrite
「^ / APIを」:「」 //インターフェイスアドレスは、それ自体が削除された場合、書き換えられることであり、その共通の接頭辞「/ API」ではありません }
}
}
彼は若い世代に害を与えないようにここに書くが、私はいくつかの良い記事を見つけ、子供の靴を必要としない、と接触していなかったか、他のクロスドメインの方法は見つけるために行くことができます:
https://segmentfault.com/a/1190000011145364
https://www.cnblogs.com/smiler/p/5829621.html
http://www.imooc.com/article/40074