'X-Frame-Options' to 'SAMEORIGIN
2020-03-28 本文已影响0人
韩小禹
需求:网站A中需要通过iframe加载网站B的页面。
解决方法1:代码中设置Access-Control-Allow-Origin。
PHP:
header('Access-Control-Allow-Origin: *'); //允许所有
header('Access-Control-Allow-Origin: https://test.com'); //允许指定域名
解决方法2:web服务器中配置
2.1:如果web服务器是Apache
<Directory "/var/www/html">
AllowOverride None
Require all granted
Header set Access-Control-Allow-Origin *
</Directory>
2.2:如果web服务器是Nginx
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,access-control-allow-origin,Authorization';
解决方法3:如果是django网站
3.1:安装django-cors-headers
3.2:然后参考https://www.cnblogs.com/randomlee/p/9752705.html中的配置
- 总之是请求方单方面设置是不行的,必须被请求方设置
X-Frame-Options 有三个可能的值:
X-Frame-Options: deny
X-Frame-Options: sameorigin
X-Frame-Options: allow-from https://example.com/
换一句话说,如果设置为 deny,不光在别人的网站 frame 嵌入时会无法加载,在同域名页面中同样会无法加载。另一方面,如果设置为sameorigin,那么页面就可以在同域名页面的 frame 中嵌套。
deny
表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。
sameorigin
表示该页面可以在相同域名页面的 frame 中展示。
allow-from uri
表示该页面可以在指定来源的 frame 中展示。