前后端分离跨域问题
参考文档
一. 什么是跨域
跨域是浏览器的专用概念,指js代码访问自己来源站点之外的站点。比如A站点网页中的js代码,请求了B站点的数据,就是跨域。
A和B要想被认为是同域,则必须有相同的协议(比如http和https就不行)、相同域名、和相同端口号(port)。
二. 解决方案
- 服务端解决方法:代理服务器
通过代理转发到想要请求的服务器上。使用nginx做反向代理
server{
listen 8080; #监听端口
server_name localhost; #监听域名
location ^~ /.do {#拦截请求
proxy_pass http://localhost:10010;#转发地址
}
}
3.前端解决方法:jsonp;关键点:**script的src属性可以随意引入不同源的js文件
**
4.(非前后端分离项目)服务端解决方法: 修改spring MVC配置,允许跨域