问题:前端请求接口:接口报错:“Required String parameter ‘code’ is not present”
排查过程:反复检查传参,没有任何问题(
- 包括参数大小写,
- 参数名称是否一致,
- 参数值类型String)
- 包括post / get 请求 Payload参数格式 是 Form Data 还是 JSON 对象
- 以及 ContentType 值都检查过了),始终找不到问题原因
原因:经验主义错误,在以往的接口定义的 http 文件中,认为只要是post请求都给加了type:‘json’ 这个属性,后端接口是post请求,但是,需要的参数格式不是 json 对象,而是form对象,这就导致问题产生了
解决方案:去掉前端接口定义中的type:‘json’ 属性
在index.js定义接口集文件中
import http from '@/http/index'
export default {
// 删除
cleanRecords(params) {
return http({
url: `/deleteSomeData`,
method: 'post',
// type: 'json', // 去掉这个属性定义,这个属性是axios 的参数序列化,目的是将参数转换为json对象
showError: true
}, params)
}
}