axios 发 post 请求,后端接收不到参数的解决方案
问题场景 场景很简单,就是一个正常 axios post 请求: axios({ headers: { 'deviceCode': 'A95ZEF1-47B5-AC90BF3' }, method: 'post', url: '/api/lockServer/search', data: { username, pwd } }) 后台说没有接收到你的传参。 这就有点奇怪了,我看了一下浏览器的请求信息是 OK 的,参数都是有的,而且之前这样用 axios 也没有这个问题。 但是这个接口是通用的,别人都用了,是 OK 的,接口没问题。 问题原因 要点1 原因就是这次的接口使用 java spring mvc 并且在这个方法上使用了注解 @RequestParam 那么这个是什么意思呢,这个是只能从请求的地址中取出参数,也就是只能从 username=admin&password=admin这种字符串中解析出参数。 要点2 我们还可以看到我们这次请求的 Content-Type: application/json;charset=UTF-8 关于这一点需要说明的是: 1、axios会帮我们 转换请求数据和响应数据 以及 自动转换 JSON 数据 2、在 axios 源码中发现下面这段内容:(很关键) ==我们知道在做 post 请求的时候,我们的传参是 data: {...} 或者直接