Почему Django возвращает X-Frame-Options SAMEORIGIN из представлений, украшенных xframe_options_exempt? - PullRequest
0 голосов
/ 03 апреля 2019

У меня вид Django, украшенный @xframe_options_exempt, и я размещаю его в iframe.Запрос GET в представлении работает нормально, но POST приводит к ошибке браузера, потому что ответ возвращается с X-Frame-Options, установленным на SAMEORIGIN.

Почему не работает @xframe_options_exempt

1 Ответ

0 голосов
/ 03 апреля 2019

Если во время обработки запроса POST возникает исключение, то у декоратора @xframe_options_exempt не будет шанса сделать это.Поэтому, если это происходит с вами, ищите исключение.

В моем случае в коде моего приложения была ошибка, которую мне пришлось исправить плюс Я получал исключения CSRF, потому что мойiframe был размещен в другом домене.Мне пришлось добавить следующие настройки, чтобы заставить его работать, что я почерпнул из нескольких разных постов StackOverflow:

# CSRF
CSRF_TRUSTED_ORIGINS = [
    '.mysite1.com',
    '.mysite2.com',
    ...
]
CSRF_COOKIE_SAMESITE = None

CSRF_TRUSTED_ORIGINS позволяет вам продолжать использовать защиту CSRF, пока ваш iframeразмещенный на доверенном сайте.Точки перед доменами означают, что субдомены разрешены.

CSRF_COOKIE_SAMESITE = None позволяет отправлять файлы cookie CSRF между сайтами.

Подробнее см. Документацию Настройки Django .информация.

...