使用axios调用GET API返回500但Postman调用正常该如何解决?
问题原因及修复方案
- 参数转义错误:你代码中
group参数值写的是Baby&Kids,这里的&是HTML场景下的&转义实体,接口实际需要接收的是Baby&Kids。axios会自动对参数做URL编码,不需要提前做HTML转义,直接修改参数值即可:group: 'Baby&Kids' - 空值参数多余传递:你代码中把所有未赋值的参数都传了空字符串,很多服务端对「不传参数」和「传空字符串参数」的校验逻辑完全不同。Postman中你没填的参数默认不会发送,就可以正常返回,axios传了多余空值参数就会触发服务端报错。建议先过滤掉所有空值再传参:
const params = { group: 'Baby&Kids', subgroup: '', subsubgroup: '', pagesize: '', pagenum: '4', minprice: '', maxprice: '', brand: '', size: '', promotion: '', bhgexclusive: '', sortorder: '', sortby: '', search: '', } // 过滤空值 const filteredParams = Object.fromEntries(Object.entries(params).filter(([k, v]) => v !== '')) axios .get('/dwapi/productsapi/GetProductList', { params: filteredParams }) .then(res => { console.log(res); // dispatch({ // type: FETCH_PRODUCT_LIST, // payload: res.data, // }); }) .catch(err => { throw err; }); - 请求配置不一致:如果上述修改后还是报错,打开浏览器控制台「网络」标签,找到对应请求,把完整请求URL、请求头和Postman的请求内容逐一对比,重点检查是否漏传了鉴权头、
Content-Type等必要配置,也可以直接把浏览器里的请求完整URL复制到Postman调用,验证是否是参数本身的问题。 - 路径代理错误:你axios用的是相对路径,确认本地开发代理配置是否正确转发到了你Postman调用的目标服务域名下,避免请求到了错误的服务实例。
内容的提问来源于stack exchange,提问作者Kerry
相关产品推荐
相关产品推荐

