クロスドメインデータ交換

みなさんこんにちは!

今日、クロスドメインデータ転送についてお話ししたいと思います。 あるドメインから別のドメインに回線を転送する必要が生じたとき、ネットワークがこの主題に関する情報をほとんど持っていないことさえ想像できませんでした。



エントリー


実際、それはすべて、数か月前に無料ホスティングにサインアップしたという事実から始まりました。 そこで、ハードドライブで100 MB、優れた技術サポート(無料ホスティングでは珍しい)を約束する第2レベルドメインの登録を申し出ましたが、これらはすべて無料で広告なしです。 しかし、もちろん、軟膏にはハエが、あるいはスプーンではなく、樽全体がありました! 実際、このリソースはphp、sql、またはその他の優れた機能を提供していません。 もちろん、このホスティングに個人的なブログを展開することは非常に困難です。 そして、ブログや他のプロジェクトがフルWebサーバー(実際の外部IPを持っている)上にあり、そのホスト上にiframeを持つファイルしかない場合はどうなるか考えました。 すぐに言ってやった。 しかし、ここに問題があります。ユーザーは自分が現在いるページのアドレスを見つけることができません。 メインサイトはフレームに読み込まれるため、 Site.ruは常にブラウザーバーで点灯します 。 そしてこれは、彼がそれを友人と共有したり、ブックマークに追加したりできないことを意味しますが、これは良くありません。



ソリューションを検索する


実際、この問題を解決する方法のアイデアは、すぐに得られました。

jsを使用して、フレームに読み込まれたページのURLを取得し、不要なものをすべて取り除き(パスのみを残す)、これをメインページに渡し、アドレスを置き換えます。 すべてが簡単で理解しやすいものですが、結局のところ、実装するのは非常に困難でした。

実際、セキュリティポリシーは、別のドメインにある場合、フレーム内の情報へのアクセスを禁止します。 これは、単純なwindow.location.hrefでページのURLを取得できず、変数に書き込み、メインウィンドウでこの変数を取得して作業を続けることができないことを意味します。 そして、ここで松葉杖を構築する必要があります。



松葉杖


実際、数日間の検索で、このタスクを実装するためのいくつかのオプションが見つかりました。 誰かがデータベースを操作することを提案し、誰かがファイルに書き込みをし、誰かが...今では覚えていません。

一般に、私はそれらすべてが本当に好きではなかったので、自分の松葉杖を発明し始めました。



何らかの理由で、jsコードをここに配置できなかったため、特別なサーバーに投げました。

ホスティングのindex.html

Webサーバーの各ページ内



それでは、何をどのように理解してみましょう。

ユーザーがsite.ruのサイトにアクセスすると、index.htmlファイルのjsがリクエストを処理し、行きたい場所(この場合はルート)を見つけ、対応するページをサーバーからフレームにロードします。



ユーザーが別のページに移動すると、index.htmlにユーザーの現在のアドレスが送信され、ユーザーはそれをページのハッシュに入れます。



おわりに


それが私が本格的なウェブサーバーを手に入れた方法です。単一のルーブルを投資せずに好きなように選ぶことができます。



もちろん、このような方法を大規模なプロジェクトに使用することはできませんが、ホームページ、ブログ、フォトギャラリー、またはサーバーを上げるためにはかなりの方法です。



まだ理解していない点がいくつかあります。 これらの中で最も重要なのは、検索エンジンのインデックス作成です。



ご清聴ありがとうございました!



All Articles