LocalStorageを使用するWebアプリがあります。次に、このWebアプリをiframeを介して他の(サードパーティ)サイトに埋め込みます。他のWebサイトがWebアプリをiframeに埋め込むことができるように、youtubeと同様のiframe埋め込みを提供したいと考えています。機能的には、埋め込まれない場合と同じです。しかし、それは機能しません。 Chrome=エラーメッセージを出力します。
Uncaught SecurityError: Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
私は次のチェックを行います(iframeで):
if (typeof window.localStorage !== 'undefined') {
// SETUP SESSION, AUHT, LOCALE, SETTINGS ETC
} else {
// PROVIDE FEEDBACK TO THE USER
}
セキュリティ設定をChrome 別のStackoverflowスレッド で説明したようにチェックしましたが、機能しません。調整することなく埋め込みを可能にする変更はありますか(デフォルト)最新のブラウザのセキュリティ設定?
より多くの情報を提供するために、WebアプリにEmber-CLIを使用してオンにしました [〜#〜] csp [〜#〜] ( Ember-CLI CSPの詳細情報 =)。 CSPにより、Webアプリがセキュリティエラーをスローする可能性がありますか?
Chromeの[設定]> [プライバシー]> [コンテンツの設定]で、Cookieの設定が[サイトがデータを設定できないようにする]に設定されています
このチェックボックスが例外の原因です。
この例外は、[サードパーティのCookieとサイトデータをブロックする]チェックボックスがコンテンツ設定で設定されている場合にスローされます。
設定を見つけるには、Chrome設定を開き、検索ボックスに「3番目」と入力し、[コンテンツ設定]ボタンをクリックして、[Cookie]の下の4番目の項目を表示します。
Chrome=でこれを行うより安全な方法は、信頼できるサイトのみを許可することです。
Chrome
-> "Settings"
-> "Show advanced settings..."
-> "Privacy"
-> "Content settings..."
-> "Manage exceptions..."
-> (add a pattern such as [*.]Microsoft.com)
-> be sure to hit enter
-> "Done"
-> "Done"
localStorage
はドメインごと、プロトコルごとです。スタンドアロンファイルからlocalStorage
にアクセスしようとしている場合、つまりfile:///
プロトコル、ドメイン自体はありません。そのため、現在ブラウザは、ドキュメントがlocalStorage
にアクセスできないと文句を言うでしょう。ファイルをWebサーバーに配置し(Tomcatにデプロイするなど)、localhost
からアクセスすると、localStorage
にアクセスできます。
次のURL:chrome://settings/content/cookies
「サードパーティのCookieをブロックする」のチェックを外します。
コメントで指摘されているように、localstorageは単一のOriginのみ、つまりページのOriginです。別のOriginからロードされたiframeからページのlocalstorageにアクセスしようとすると、エラーが発生します。
できることは、postMessage APIを介してXDMでハックすることです。 このライブラリ あなたのために重荷をかけることを目的としていますが、私はそれを試していません。ただし、このルートを進む前に、 IEのXDMのひどいサポート に注意してください。
この警告を取り除くには、Chromeの[設定]-> [プライバシー]-> [コンテンツの設定]で、[サードパーティのCookieとサイトデータをブロックする]オプションをオフにする必要があります
imhoそれはember cliアプリのCSP設定とは関係ありませんが、ブラウザー設定とは関係ありません。一部のブラウザー(Chrome)はiframeにロードされたlocalStorageコンテンツをブロックします。 Ember Appの場合、ember appとサードパーティのWebサイトにロードするプラグインがある場合、iframeにロードされたユーザートークンはChromでブロックされます、私たちはいくつかの解決策を試していますが、このスレッドがどのように進行するかについて投稿し続けます。