#django #iframe
Вопрос:
Я относительно новичок в iFrame, и то, что я пытаюсь сделать, — это загрузить проект A в iframe
то, что находится в проекте B. Проект A выполняется как проект Django на локальном хосте:8000, а проект B-как отдельный проект Django на локальном хосте:8001. Внутри проекта B у меня есть шаблон Django со следующим содержимым:
<iframe src="http://127.0.0.1:8000" height="500px" width="500px"></iframe>
Проблема в том, что вместо просмотра содержимого домашней страницы проекта я вижу сообщение об ошибке, в котором говорится, что:
127.0.0.1 отказано в подключении
Есть ли что-нибудь, чего мне ужасно не хватает?
Комментарии:
1. Нет, я отредактировал вопрос. Проблема не в рекурсивных вызовах
2. Ах, это защита от взлома с помощью Джанго. Видишь docs.djangoproject.com/en/dev/ref/clickjacking
3. Ага) Я уже это понял 🙂 Но вы можете оставить свой комментарий в качестве ответа, я отмечу это галочкой
Ответ №1:
Это защита от взлома по умолчанию [Django docs] с помощью запуска Django в действие (отлично подходит для нас!), Но это мешает вам загружать iframe в другом проекте. Существуют различные варианты решения этой проблемы:
- Если вы хотите, чтобы все ваши страницы из вашего проекта были помещены в iframe, вы можете удалить
'django.middleware.clickjacking.XFrameOptionsMiddleware'
их из своихMIDDLEWARE
настроек:MIDDLEWARE = [ ...
'django.middleware.clickjacking.XFrameOptionsMiddleware',... ] - Если это только для определенных видов, вы можете использовать
xframe_options_exempt
декоратор:from django.views.decorators.clickjacking import xframe_options_exempt @xframe_options_exempt def some_view(request): ...