13

を含むページを作成しましたiframe。の中に、iframeFacebook の記事、ニュース、YouTube ビデオ、その他の可能な URL など、複数の異なるリンクを表示したいと考えています。しかし、Xframe ヘッダーが原因で、そうすることができません。次のリンクを参照しました: https://docs.djangoproject.com/en/1.8/ref/clickjacking/ および Django XFrameOptionsMiddleware (X-Frame-Options) - クライアント IP による iframe の許可

しかし、何の助けも得られませんでした。

私のsettings.pyファイルMIDDLEWARE_CLASSESは次のとおりです。

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

http://django-secure.readthedocs.org/en/latest/middleware.htmlから、デコレータを使用し@frame_deny_exemptて問題を解決できることがわかりました。それでも、Chromeコンソールで同じエラーが発生します Refused to display '<URL>' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN, SAMEORIGIN'.

これについて何か助けはありますか??

4

3 に答える 3

7

settings.py のリストdjango.middleware.clickjacking.XFrameOptionsMiddlewareから削除MIDDLEWARE

于 2020-05-06T10:54:22.207 に答える
4

私はいくつかの Django サイトを持っており、誰かがそれらを iframe で表示したいと考えていました。「x-frame-options」ヘッダーの値が常に SAMEORIGIN であるため、これは不可能でした。何をしても「x-frame-options」ヘッダー値を削除できませんでした。

そこで最終的に、httpd.conf を変更するという最後の解決策を実行することにしました。この行を追加しました:

  ヘッダーは常に X-Frame-Options ALLOWALL を設定します

そしてそれはiframeに表示されます。

于 2015-08-14T03:04:56.603 に答える
3

私がよく理解しているなら、あなたはここで何か間違っています。は、iframe 内で 3 番目のサイトを許可するのではなく、iframe 内でサイトを許可するX-Frame-Optionsどうかに関するヘッダーを尊重するブラウザーに関するものです。

それぞれ、これは他のサイトのヘッダーから発生します。たとえば、Facebook は上記のヘッダーを に設定しているDENYため、これを尊重するブラウザーは、サイトのヘッダーが何であれ、サイトがそれを表示することを許可しません。

于 2015-07-02T08:10:55.323 に答える