本文将基于windows,使用Nginx实现跨域访问功能。
注:本文基于前述基础知识,如需要查看,请点这里
1.什么是跨域访问?
协议、域名、子域名、端口至少有一个不一样,则是不同域,否则是同域。示例如下:
(1)http://www.gupao.com 和 https://www.gupao.com 不同域,协议不同
(2)http://www.gupao.com 和 http://www.gupao.net 不同域,域名不同
(3)http://gper.gupao.com 和 http://bbs.gupao.com 不同域,子域名不同
(4)http://www.gupao.com:2673 和 http://www.gupao.com:2674 不同域,端口不同
(5)http://www.gupao.com/index 和 http://www.gupao.com/bbs 同域
2.浏览器同源策略
当我们在浏览器里访问一个域,不允许它跟另一个域的脚本进行交互。
主要是基于安全考虑,不允许web端同时访问不同的域(服务端)。
3.通过Nginx代理实现跨域访问(方法一)
原理:使用nginx同时代理 server1和server2,则对于浏览器来说,它只访问了一个地址(nginx服务器的地址),会认为是同一个域,从而实现跨域访问。
(1)nginx.conf配置如下:
server{ listen 8060; server_name localhost; 当访问/user/csrf 时,去到8062端口 location /user/csrf { proxy_pass http://localhost:8062; } 非访问/user/csrf 时,去到8061端口 location / { proxy_pass http://localhost:8061; }}
说明:修改配置后,需要执行 nginx -s reload
(2)csrf.html 示例如下(本示例基于thymeleaf):
this is the csrf file 来源地址:https://blog.csdn.net/nuaa042216/article/details/127190051