0

埋め込みアプリケーション (IFRAME として私のサイトに挿入) で使用される Javascript SDK を開発しており、承認ダイアログや共有ボックス (Facebook など) などのダイアログのロードなどのリソースを使用するのに役立ちます。

私たちの SDK は、多かれ少なかれ次のように動作するように easyXDM を使用しています。

HTML ページ
------------------------------------------------ -------------------------------------------------- --------------------------
| http / https: www.mysite.com /embedded-app/
| (一部の JS クラス)
|
|- - - - - | -------------------------------------------------- -------------------------------------------------- --------------
|- - - - - | (IFRAME)
|- - - - - | https: // www.some-embedded-app-domain.com /page.html
|- - - - - | (「http/https:www.mysite.com/sdk.js から easyXDM を使用する SDK をロードしてインスタンス化します)
|- - - - - |
|- - - - | - - - - - |----- -------------------------------------------------- --------------------------------------------
|- - - - - | - - - - - | (easyXDM によって挿入された IFRAME)
|- - - - - | - - - - - | http / https: www.mysite.com /embedded_provider.html |
- - - - - | - - - - - | (これらの wndow.top JS クラスを使用して対話する window.top との通信)
|- - - - - | - - - - - |
|- - - - - | - - - - - |
|- - - - - | - - - - - |
|- - - - - | - - - - - |

私のサイトは http/https の両方を使用して読み込むことができますが、埋め込みアプリケーションは常にHTTPS を使用して提供する必要があります。easyXDM によって挿入された内部 iframe がサイトと通信できるようにするには、ホストとプロトコルが両方の URL で一致している必要があります。そうしないと、同一オリジン ポリシー違反が発生します。

問題: 外部アプリの URL から読み込まれる SDK のコードに、外部ウィンドウ (私のサイト) が http または https を使用していることをどのように伝え、同じプロトコルを使用して embedded_provider.html をレンダリングし、JS 通信を許可するかを教えてください。両者の間に?

私が考えることができる唯一の解決策は、組み込みアプリに現在 http / https からブラウズしていることを何らかの方法で通知することです。その後、(フラグ use_https などを使用して) 適切にインスタンス化できますが、強制しないことをお勧めします私たちが使用しているプロトコルを知るためのアプリ。

他の代替手段を知っていますか?

ありがとう!

4

2 に答える 2

1

私が考えることができる唯一の解決策 (これはまだテストしていません) は、easyXDM を 2 つのテスト iframe に配置することですcom/url_test

次に、/url_test Web ページに window.top.location.href へのアクセスを試みさせます。/url_test で場所を確認できる場合は、同じドメインにある必要があります。次に、成功した /url_test ページは、easyXDM を介して (some-embedded-app.com の) 親 iframe と通信し、正しいホストで本当に必要な iframe を作成します。

注: 不適切なホストにある /url_test ページは、コンソールに同じ生成元の iframe 警告をダンプし始めます。:)

注 2: このアプローチが機能する場合は、次のように繰り返し改善することができます。 httpsをバックアップとして。」

于 2013-07-16T21:01:13.070 に答える
0

// 代わりに http:// または https:// を使用してください

ブラウザはそれを並べ替えます

于 2013-03-01T18:47:42.603 に答える