我正在使用Django提供的本地开发服务器开发Web应用程序。我的本地网络应用程序将在远程站点的iframe中进行嵌入。但是在测试Chrome时会加载远程站点的encappsulating网页(该页面用于将我的web-app包装在iframe中,但会阻止对iframe中的本地开发服务器的请求,这使得测试无法进行。
我查看了chrome的控制台并收到以下错误:
Refused to frame 'https://localhost:8000/' because it violates the following Content Security Policy directive: "child-src 'self' https://* shopify-pos://*". Note that 'frame-src' was not explicitly set, so 'child-src' is used as a fallback.
我的问题:
1)为什么Chrome阻止请求?
2)是否因为我使用localhost而导致此错误?一旦我在具有域名的生产服务器上部署,框架在Chrome上工作正常吗?
3)无论如何,当我在本地主机上进行测试时,我是否可以绕过这个错误?
答案 0 :(得分:0)
Django使用'django.middleware.clickjacking.XFrameOptionsMiddleware'进行Clickjacking保护。
要允许将网站嵌入到iframe中,只需从settings.py中删除该中间件
https://docs.djangoproject.com/en/dev/ref/clickjacking/#clickjacking-prevention
答案 1 :(得分:0)
尝试停用Chrome中的CORS保护。
这chrome app可能会有所帮助。