SpringBoot前后端分离项目开发中三种常见跨域问题的解决方案
·
简述跨域问题:

①在服务器端部署上线后的跨域问题
方案:使用Nginx方向代理服务器解决
通过反向代理服务器监听同端口,同域名的访问,不同路径映射到不同的地址,比如,在nginx服务器中,监听同一个域名和端口,不同路径转发到客户端和服务器,把不同端口和域名的限制通过反向代理,来解决跨域的问题。

前端异步请求数据(向/account/login接口发起请求,前面加上apis是由于在nginx中设置了反向代理):

后端接口:

前端请求接口:

需要使用webpack中的dev运行
②开发过程中的跨域问题(以下解决方案中后端提供的接口与上面一致,无需做任何改变):
情况一:本地运行了一个spring boot项目提供数据接口,在开发时想通过该接口获取数据
前端异步请求数据:

这时我们需要在webpack.config.js中配置devServer:

此时在本地即可解决跨域问题
最后一种是前后端开发中最可能遇到的情况,此时后端已经在云服务器上运行,而前端还在本地开发
情况二:云服务器运行了一个spring boot项目并通过nginx反向代理(nginx配置与上面一样,没有改变)提供数据接口,前端开发人员希望在本地从云服务器请求数据:
前端异步请求数据:

这时我们同样需要在webpack.config.js中配置devServer:

③存静态页面访问接口的跨域问题
此时没有dev运行前端并对请求地址做代理,需要对前端和后端都进行配置
情况一:本地运行了一个spring boot项目提供数据接口,在开发时想通过该接口获取数据
前端异步请求:
(需要接口的完整路径)

后端在controller的类或方法上添加注解允许跨域:

此时我们直接打开静态页面login.html也能够访问到接口数据
情况二:云服务器运行了一个spring boot项目并通过nginx反向代理(nginx配置与上面一样,没有改变)提供数据接口,前端开发人员希望在本地从云服务器请求数据:
暂时还未解决,如果有解决方法欢迎到评论区讨论
springboot跨域请求解决方案+前后端分离跨域问题其他解决方案
参考:https://blog.csdn.net/qq_43486273/article/details/83272500
webpack-dev-server使用proxy跨域cookie问题
参考:https://blog.csdn.net/qq_36297981/article/details/89528832
更多推荐



所有评论(0)