以下是 浏览器HTTP错误、前端常见报错 和 Java后端报错 的综合整理,包括原因和解决方法,帮助你快速排查问题。
一、HTTP 错误(浏览器报错)
错误码 | 原因 | 解决方法 |
---|---|---|
400 Bad Request | 请求语法错误(如参数格式错误、请求体过大) | 检查URL或表单输入,清除缓存/Cookies |
401 Unauthorized | 未认证(如未登录或Token失效) | 重新登录,检查 Authorization 头 |
403 Forbidden | 无权限访问(如IP限制、文件权限) | 检查用户权限或服务器文件权限 |
404 Not Found | 请求的资源不存在 | 检查URL是否正确,服务器文件是否存在 |
405 Method Not Allowed | 请求方法不被支持(如POST访问GET接口) | 检查API文档,使用正确的HTTP方法 |
408 Request Timeout | 请求超时(服务器未及时响应) | 刷新页面,优化网络或减少请求数据量 |
500 Internal Server Error | 服务器内部错误(代码异常) | 查看服务器日志,检查代码逻辑 |
502 Bad Gateway | 代理服务器无法连接后端(如Nginx+PHP崩溃) | 检查后端服务是否正常运行 |
503 Service Unavailable | 服务不可用(如服务器过载、维护) | 稍后重试,检查服务器负载 |
504 Gateway Timeout | 代理服务器等待后端超时 | 优化后端响应时间,调整代理超时设置 |
505 HTTP Version Not Supported | 服务器不支持HTTP版本 | 改用HTTP/1.1或HTTP/2 |
二、前端常见报错及解决
1. JavaScript 运行时错误
错误 | 原因 | 解决方法 |
---|---|---|
Uncaught TypeError: Cannot read property 'X' of undefined | 访问未定义的变量或属性 | 检查变量是否初始化,使用可选链 obj?.prop |
Uncaught ReferenceError: X is not defined | 变量未声明 | 检查拼写错误,确保变量已定义 |
Uncaught SyntaxError: Unexpected token | 语法错误(如缺少括号、引号) | 检查代码格式,使用ESLint |
Failed to load resource: net::ERR_CONNECTION_REFUSED | 后端服务未启动或CORS问题 | 检查API是否运行,配置CORS(如Access-Control-Allow-Origin ) |
Uncaught (in promise) Error: Network Error | 网络请求失败(如跨域、接口错误) | 检查API地址,使用try-catch 处理错误 |
2. 前端框架相关错误
框架 | 常见错误 | 解决方法 |
---|---|---|
React | Warning: Each child in a list should have a unique "key" prop | 为循环渲染的元素添加唯一key |
Vue | Error in render: "TypeError: Cannot read property 'X' of null" | 使用v-if 或默认值避免访问null |
Angular | NG0100: ExpressionChangedAfterItHasBeenCheckedError | 避免在ngAfterViewInit 中直接修改数据 |
3. 跨域问题(CORS)
-
错误:
Access to XMLHttpRequest at 'http://api.example.com' from origin 'http://localhost:3000' has been blocked by CORS policy
-
解决:
-
后端设置响应头:
Access-Control-Allow-Origin: * Access-Control-Allow-Methods: GET, POST, PUT
-
三、Java 后端常见报错及解决
1. Spring Boot 启动错误
错误 | 原因 | 解决方法 |
---|---|---|
APPLICATION FAILED TO START | 依赖冲突或配置错误 | 检查pom.xml ,排除冲突依赖 |
BeanCreationException | Bean初始化失败(如数据库连接失败) | 检查application.yml 配置,如datasource.url |
NoSuchBeanDefinitionException | Spring容器找不到Bean | 检查@Component /@Service 注解是否正确 |
2. 数据库相关错误
错误 | 原因 | 解决方法 |
---|---|---|
SQLSyntaxErrorException | SQL语法错误 | 检查SQL语句,使用JPA/Hibernate调试 |
Connection refused: connect | 数据库服务未启动 | 检查MySQL/PostgreSQL是否运行 |
Hibernate: Unknown column 'X' in 'field list' | 数据库表字段不匹配 | 检查@Column 注解或更新表结构 |
3. 空指针异常(NPE)
-
错误:
java.lang.NullPointerException
-
解决:
- 使用
Optional
避免空指针:Optional.ofNullable(obj).ifPresent(o -> o.doSomething());
-
检查对象是否初始化(如
new
或数据库查询结果)。
4. 线程池/并发问题
-
错误:
RejectedExecutionException
(线程池满) -
解决:
-
调整线程池大小:
@Bean public Executor asyncExecutor() {ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();executor.setCorePoolSize(10);executor.setMaxPoolSize(50);return executor; }
-
5. 文件/IO 错误
-
错误:
FileNotFoundException
或AccessDeniedException
-
解决:
-
检查文件路径(绝对路径/相对路径)。
-
确保程序有读写权限(Linux:
chmod
)。
-
四、通用排查流程
-
前端:
-
按 F12 查看Console/Network错误。
-
检查API请求是否正确(URL、参数、Headers)。
-
-
后端:
-
查看日志(如
logs/application.log
)。 -
使用Postman测试API。
-
-
数据库:
-
检查连接配置(如
spring.datasource.url
)。 -
使用SQL客户端(如DBeaver)手动执行SQL。
-
总结
-
浏览器HTTP错误:检查请求是否正确,服务器是否正常。
-
前端报错:关注Console日志,检查变量、API请求、跨域问题。
-
Java后端报错:查看日志,检查Spring配置、数据库连接、空指针。