46

レスポンシブデザインをテストしようとしています。Rails 4 を使用しています。'X-Frame-Options' が SAME ORIGIN に設定されていることはわかっています。だから私はdevelopment.rbでそれをオーバーライドしました

config.action_dispatch.default_headers = {
    'X-Frame-Options' => 'ALLOWALL'
  }

そしてそれはうまくいきました。Chrome コンソールでネットワーク リクエストを確認したところ、次のようになりました。

ここに画像の説明を入力

それでも、responsible.is や responsinator.com などの Web サイトでは、以下のエラーが表示されます。

Refused to display 'http://localhost:3000/' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'. about:blank:1

どうしたの??

4

8 に答える 8

72

このヘッダー「X-Frame-Options」を削除してみてください。たぶん、コントローラーでこのように:

before_filter :allow_iframe_requests
...
def allow_iframe_requests
  response.headers.delete('X-Frame-Options')
end
于 2013-07-25T15:28:14.093 に答える
1

ALLOW-FROM http://example.com代わりに試してみませんか?十分に新しいバージョンの Chrome を使用している場合、Chrome では ALLOWALL で問題ない可能性があります [2]。

[1] https://developer.mozilla.org/en-US/docs/HTTP/X-Frame-Options

[2] https://stackoverflow.com/a/16101968/800526

于 2013-07-20T13:12:45.613 に答える
0

これには別の原因が見つかりました。ALLOWALL または同様の修正が実装されていると仮定すると、次の問題は、https Web サイトで http コンテンツを使用しようとすることです。これはセキュリティ リスクを引き起こし、mozilla、IE、およびおそらく他のブラウザーによってブロックされます。これを特定するのに6時間かかりました。共有することで誰かの痛みを軽減できることを願っています...

次の方法で確認できます。

  • エラーを表示する必要があるブラウザ Web ツールを使用します。
  • Web ログには、提供サイトとの接続がありません。
  • コンテンツの URL を銀行の https ホームページに置き換えると、それ以外の場合は iframe が機能することが示されます。

解決策は、ソースに https コンテンツがあるかどうかを尋ねるか、別のサプライヤーを見つけることです。

参照:

于 2015-09-21T21:09:36.393 に答える
-2

この変更をすべての環境で有効にしたい場合は、application.rb に配置します。

于 2014-12-12T22:36:41.160 に答える