'X-Frame-Options' to 'SAMEORIGIN'. 解决方法

需求:网站A中需要通过iframe加载网站B的页面。
解决方法1:代码中设置Access-Control-Allow-Origin。
    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 中嵌套。
    表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。
    sameorigin
    表示该页面可以在相同域名页面的 frame 中展示。