最近遇到iframe嵌入页面跨域的问题,因为无法对嵌入的页面进行操作,只能通过nginx反向代理进行跨域,一直没成功,希望大家帮帮忙。
如果你只是端口不同,nginx中的 proxy_pass 只需要换成web网站的端口如:https://192.168.3.66:web端口,你里面监听10800端口,然后代理到10800端口等于没代理
add_header X-Frame-Options DENY;
add_header X-Frame-Options SAMEORIGIN;
add_header X-Frame-Options "ALLOW-FROM http://www.a.com,http:///www.b.com";
要通过nginx反向代理解决跨域问题,可以在nginx的配置中添加相关的header信息。根据参考资料的内容,下面是可以尝试的解决方案:
location /ldy/ {
proxy_pass http://localhost:3444/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $remote_addr;
client_max_body_size 1000m;
proxy_hide_header X-Frame-Options;
add_header X-Frame-Options "ALLOW-FROM localhost:9530 172.26.238.74:8081 www.baidu.com";
add_header Content-Security-Policy "frame-ancestors https://localhost:9530 http://172.26.238.74:8081 https:/www.baidu.com/" always;
}
这样配置后,nginx会将请求转发到http://localhost:3444/,并在响应头中添加X-Frame-Options和Content-Security-Policy的相关信息。
add_header X-Frame-Options DENY;
add_header X-Frame-Options SAMEORIGIN;
add_header X-Frame-Options "ALLOW-FROM http://www.a.com, http://www.b.com";
add_header Content-Security-Policy "frame-ancestors 'none'";
或者指定允许的域名列表:
add_header Content-Security-Policy "frame-ancestors http://www.a.com http://www.b.com";
根据具体情况,选择合适数值设置即可。
以上是通过nginx反向代理解决跨域问题的一些参考方法,你可以根据实际需求选择合适的方式进行配置。