用vue-element-admin框架开发后台管理页面时,遇到post请求中带的数据,到了服务端所有数据类型都变成了字符串,导致类型验证失败。
排查时,已经打印了到了底层的位置了,这个时候数据类型还是正确的,没有头绪。
查看浏览器中的network列,看下具体的情况:
可以看到在浏览器中的请求信息,method明明是Post,但是URL中,还带有类似get请求的参数格式,url+?+params,
问题应该就是出在这,post请求的数据变成了get参数格式,导致全部变成了字符串类型。
想到之前另一个post接口是正常的,因此对比了下两个接口的代码:
破案了- -!
直接复制的get请求的代码,get请求中的参数字段是params,post请求的参数字段是data,这应该是axios封装所需的,光改了method,没有改参数字段名称,导致此次问题的出现。
调整为:
{
method: 'post'
data: data
}