问题:
新增失败,出现400
发现请求的数据格式是JSON格式。
原因:
axios处理请求体的原则会根据请求数据的格式来定:
-
如果请求体是对象:会转为json发送
-
如果请求体是String:会作为普通表单请求发送,但需要我们自己保证String的格式是键值对。
如:name=jack&age=12
QS是一个第三方库,我们可以用npm install qs --save
来安装。
QS,即Query String,请求参数字符串。
什么是请求参数字符串?例如: name=jack&age=21
QS工具可以便捷的实现 JS的Object与QueryString的转换。
下图是通过QS转换后的请求参数:
因为是请求参数拼接,这里的name,因为value是中文,浏览器对其进行转码。
ps:
我这里新增成功了,但是在数据库存入的name是两个问号??,这时候我想到了MySQL的配置文件的url需要加入useUnicode=true&characterEncoding=utf8这一段,否则中文在数据库中存入的就是乱码。