springboot+vue项目上云报networkError
问题描述:
springboot+vue前后端分离项目,本地正常,jar包运行正常如图1,前端用nginx部署,后端直接运行jar包部署,前端正常,后端在服务器主机上用curl访问正常,但内网访问服务器主机失败,用postman发送请求如是。(跨域问题后端解决)
报net::ERR_CONNECTION_REFUSED错误,服务器拒绝连接。

图1 本地java运行jar包

图 本地postman请求成功

图 本地vue发送请求成功

图 云服务器curl发送请求返回正常

图 vue前端发送axios请求连接失败

图 vue前端连接失败无响应

图 vue前端拒绝连接

图 postman发送请求拒绝连接
解决方案
检查一遍云主机防火墙、跨域处理等发现正常,最后检查代码,发现springboot配置文件有问题:注释掉关于server.address的配置即可。猜测是由于ipv4地址问题,配置为server.address=localhost时,在本地测试时发现ipv4地址+端口同样无法访问,但是内网ip+端口可以,云上亦然。

什么是跨域

(图片来自网络,侵删)
步骤一:nginx跨域

# 允许跨域请求的域,*代表所有
add_header 'Access-Control-Allow-Origin' *;
# 允许带上cookie请求
add_header 'Access-Control-Allow-Credentials' 'true';
# 允许请求的方法,比如 GET/POST/PUT/DELETE
add_header 'Access-Control-Allow-Method' *;
# 允许请求的header
add_header 'Access-Control-Allow-Headers' *;
随后关闭nginx然后重启。
不想写了,下次完善。

浙公网安备 33010602011771号