调试流程图:
一、基础网络检查
- IP与端口验证
-
- 确认前端请求的URL与后端实际运行的IP和端口完全一致(如
http://192.168.1.100:8080/api
) - 使用
ping
命令测试网络连通性,telnet
检查端口是否开放:
- 确认前端请求的URL与后端实际运行的IP和端口完全一致(如
telnet 192.168.1.100 8080
- 防火墙设置
-
- 关闭操作系统防火墙(Windows Defender/iptables)或添加端口例外规则
- 检查云服务器安全组策略是否放行端口
二、请求链路分析
- 浏览器开发者工具
-
- 打开Chrome DevTools的Network标签,观察请求状态码:
-
-
- 404:URL路径错误
- 500:后端内部错误
- CORS错误:跨域策略问题
-
-
- 检查Request Headers中的
Origin
和Content-Type
是否符合后端要求
- 检查Request Headers中的
- 代理与反向代理配置
-
- Nginx配置示例(解决跨域和路由):
location /api/ {proxy_pass http://backend_server:8080;add_header 'Access-Control-Allow-Origin' '*';add_header 'Access-Control-Allow-Methods' 'GET,POST';
}
需检查proxy_pass
地址是否正确
三、后端服务诊断
- 日志排查
-
- 查看后端应用日志,确认请求是否到达(如Spring Boot控制台输出)
- 启用DEBUG级别日志,检查参数解析和业务逻辑
- 本地直连测试
-
- 使用Postman直接调用后端接口,绕过前端验证基础功能
- 示例请求:
POST http://localhost:8080/login
Content-Type: application/json{"username":"test","password":"123456"}
四、跨域问题(CORS)专项处理
- 服务端配置
-
- Spring Boot解决方案:
@Configuration
public class CorsConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allowedOrigins("*").allowedMethods("GET", "POST");}
}
需根据实际需求调整allowedOrigins
- 开发环境临时方案
-
- 浏览器启动参数禁用安全策略(仅限调试):
chrome.exe --disable-web-security --user-data-dir=/tmp
五、进阶调试技巧
- 网络抓包分析
-
- 使用Wireshark捕获TCP/IP包,分析三次握手过程:
-
-
- 若SYN未响应:防火墙/端口未监听
- 收到RST:服务未正常运行
-
- HTTPS证书验证
-
- 检查证书有效期(Chrome点击地址栏锁图标)
- 临时关闭SSL验证(仅限测试环境):
// Axios配置
axios.defaults.httpsAgent = new https.Agent({ rejectUnauthorized: false
});
六、典型场景解决方案
现象 | 排查重点 | 工具/方法 |
404 Not Found | URL路径错误/路由未配置 | 比对API文档,Postman测试 |
502 Bad Gateway | Nginx代理配置错误/后端服务未启动 | 检查 |
跨域错误 | CORS头未正确设置 | 浏览器Network标签,服务端配置 |
连接超时 | 防火墙阻断/网络路由问题 | telnet测试,traceroute追踪 |
通过以上系统化排查,90%的前后端连接问题可快速定位。若问题仍未解决,建议提供具体的请求/响应截图和日志片段进一步分析
在 deepseek 大模型辅助下完成。