买了个阿里云服务器,比较穷,用宝塔Linux装了MySQL,Redis,把前后端都搭在上边了。
因为是在一个服务器上,前后端请求路径就用的开发时的localhost,由于前后端端口不一样。后端配置了跨域。但是前端页面打开后发送请求给后端,控制台直接报错(封装了myaxios,每次发送的请求在控制台都有输出),后端springboot没有收到请求。
求个佬指点一下子。
买了个阿里云服务器,比较穷,用宝塔Linux装了MySQL,Redis,把前后端都搭在上边了。
因为是在一个服务器上,前后端请求路径就用的开发时的localhost,由于前后端端口不一样。后端配置了跨域。但是前端页面打开后发送请求给后端,控制台直接报错(封装了myaxios,每次发送的请求在控制台都有输出),后端springboot没有收到请求。
引自免费微信小程序:皆我百晓生
根据你的描述和提供的错误信息,问题可能出在以下几个方面:
localhost
。由于你已经在阿里云服务器上部署了应用,应该使用服务器的公网IP地址或者域名来替代localhost
。针对这些问题,你可以尝试以下解决方案:
在前端代码中,将请求路径从localhost
改为阿里云的公网IP地址或域名。例如:
// 假设你的服务器公网IP是xxx.xxx.xxx.xxx,端口是8080
const url = 'http://xxx.xxx.xxx.xxx:8080/api/user/recommend';
确保前端发送请求时使用的端口号是正确的,与后端实际运行的端口一致。
检查后端Spring Boot的跨域配置,确保允许前端的域名进行访问。你可以在Spring Boot的配置文件中(如application.properties
或application.yml
)添加如下配置:
# 允许所有域名访问
spring.cors.allowed-origins=*
spring.cors.allowed-methods=GET,POST,PUT,DELETE,OPTIONS
spring.cors.allowed-headers=*
spring.cors.exposed-headers=*
spring.cors.support-credentials=true
确保服务器的防火墙或安全组规则没有阻止前端发送的请求。你可以在阿里云的安全组规则中检查并添加相应的规则来允许前端IP的访问。
查看后端服务器的日志,看是否有关于请求被拒绝或其他相关错误的日志信息。这可以帮助你进一步定位问题。
主要需要检查的是请求路径、端口、跨域配置和服务器防火墙设置。确保这些配置都是正确的,应该就能解决前端发送请求给后端失败的问题。希望这些建议能帮助你解决问题!