1、API接口返回数据是json字符串而非json对象
错误的返回格式(由于返回的内容不是对象格式,而是一个字符串String,就会导致前端没办法进行内容获取,通常会出现报错不提示、成功不提示等奇葩现象!)
正确的返回格式
解决办法
2、MySQL 数据表的编码错误导致接口报错
报错提示:
DBC exception on Hibernate data access: SQLException for SQL [insert into T_CATALOG (BMID, BZ, CJR, CJSJ, GXR, GXSJ, MC, PID, PXZ, SFMR, TREELEVEL, TREEPATH, ID) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]; SQL state [HY000]; error code [1366]; could not execute batch; nested exception is org.hibernate.exception.GenericJDBCException: could not execute batch
解决方案:
ALTER DATABASE rp3 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE t_resource CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
SHOW TABLES FROM rp3;
3、生产环境报错,本地没报错。极有可能是生产环境的数据库表格缺少本地新添加的字段,或者property文件配置参数缺失导致的报错!
4、后台数据库字段限制了最小长度,导致前台提交超长字符串报错(一个最常见错误)
5、 后端Nginx限制上传文件大小调整到最大值,导致上传大文件失败
6、喜欢用一些同义词字段名,不统一、搞一些新花样。例如:start、limit和from、size;LX和type;KEYS和keys、keyword;ID和id。迟早出问题!
7、Nginx限制了Post传输的内容大小,导致接口请求错误提示404
<html> <head><title>404 Not Found</title></head> <body> <center><h1>404 Not Found</h1></center> <hr><center>nginx/1.21.4</center> </body> </html> <!-- a padding to disable MSIE and Chrome friendly error page --> <!-- a padding to disable MSIE and Chrome friendly error page --> <!-- a padding to disable MSIE and Chrome friendly error page --> <!-- a padding to disable MSIE and Chrome friendly error page --> <!-- a padding to disable MSIE and Chrome friendly error page --> <!-- a padding to disable MSIE and Chrome friendly error page -->
8、Nginx设置超时时间太短,导致前端请求一段时间接口就报错404,后端开发还说是前端开人员设置了超时(→_→)
Nginx的 keepalive_timeout 字段设置了超时时间
9、本地测试接口对的,线上接口报错500,排查是否为线上的maven引用包的版本不是和本地一样的
报500页面---
controller没catch住异常
说明 是代码错误: Throwable