2011-07-27 18 views
5

私たちはRuby on Railアプリケーションを使用して、多数のビデオ埋め込みコードをデータモデルに保存できます。フォームを使用すると、任意の数の埋め込みコードを入力し、送信を押してすべてをデータベースに保存できます。その後、ユーザーはすべての埋め込みコードのリストを持つページにリダイレクトされます。埋め込みコードがRailsモデルに保存された後の最初の読み込み時にChromeでレンダリングされない埋め込みビデオ

このワークフローは、IE、Safari、およびFirefoxでうまく機能します。

ただし、初めてページが読み込まれると、ページに動画が表示されません。コンソールで次のエラーがビデオごとに1回表示されます。

JavaScriptスクリプトの実行を拒否しました。要求内に見つかったスクリプトのソースコード。

以降のページが読み込まれると、ビデオが正常に読み込まれ、そのエラーは表示されません。

私はソースを表示すると予想されるようにソースが通過来ている場合、私は言うことができないので、ページは表示ソースの操作のために再ロードされます。

私はビデオであるべきブロックに要素を検査するとき、私は以下を参照してください。

<iframe src="" width="400" height="225" frameborder="0"> 
    <html> 
    <head></head> 
    <body></body> 
    </html> 
</iframe> 

これは、両方のiframe形式の埋め込みコードのと同様に、「古いスタイル」タグコードのために発生しますYoutTubeとVimeoの両方のビデオ用。

関連:

答えて

6

それはクロムが上記のご参考として、XSS (cross-site scripting)を防ぐ方法です。

埋め込みコードを送信して別のページにリダイレクトして表示すると、Chromeは送信された埋め込みコード(HTTP POST経由)と応答された埋め込みコードが同じであることを確認して読み込みを禁止しますコンソールのエラーです。ページを更新する場合(あなたが前にそれをリダイレクトするので)それが正しく表示されるはずですので

、これ以上のHTTP POSTは、提出されません。

私は同じ問題を抱えており、リダイレクト後にページを自動リロードすることで解決しました。

+0

バグがChromeで潜在的に実際にあります。しかし、バグの状態はどうか分かりません。 –

+1

Chromeのバグステータス:http://コード。google.com/p/chromium/issues/detail?id=98787 –

+1

バグステータスレポートの解決策:レスポンスヘッダに 'X-XSS-Protection:0'を追加します。 – nickvane

1

私は二回srcとsrc2のとしてURLを追加し、再ロード

...クロムは、それを削除する原因私は、したがって、他の場所でSRCを保存

.. workarroundとして(jQueryを使って)JavaScriptでのiframeをリロード次にsrc2を使用します。

私はまた、特別なクラスをリロードする必要があるすべてのiframeを与えた「webkitIframeHack」。

<script type="text/javascript"> 
$(function(){ 
    if ($.browser.webkit) { 
     $("iframe.webkitIframeHack").each(function(){ 
      $(this).attr('src', $(this).attr('src2')); 
     }); 
    }; 
}); 
</script> 

(私は、HTML5データ - *属性を使用することはできません、私は彼らがよりフィットになると思います。)

関連する問題