【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
Refused to display 'http://xxx' in a frame because it set 'X-Frame-Options' to 'sameorigin' / 'deny'
当页面中 嵌入页面时 可能会报这样的错误
原因:
sameorigin 的原因是 在页面中嵌入的 非同源的 页面
deny 的原因是在页面中嵌入的 不许用嵌入的页面
解决:
NGINX中可以设置 X-Frame-Options响应头
X-Frame-Options 响应头有三种不同的选项:
ALLOW-FROM:页面地址允许frame加载。
SAMEORIGIN:页面地址只能被同源域名页面嵌入到frame中;
DENY:页面地址不能被嵌入到任何frame中;
在django中:
django中对应这三种类型:
xframe_options_exempt
xframe_options_sameorigin
xframe_options_deny
引入地址:
from django.views.decorators.clickjacking import xframe_options_exempt, xframe_options_sameorigin, xframe_options_deny
使用:
在 对应接口上添加对应的 装饰器 , 使用xframe_options_exempt可避免问题的发生
from django.views.decorators.clickjacking import xframe_options_exempt
@xframe_options_exempt
def get_html_page(request):
pass
来源:oschina
链接:https://my.oschina.net/xiaohuai4869/blog/3144115