当使用axios发送get请求时,请求参数传递的方式有两种,一种是使用params参数传递,另一种是使用data参数传递。一般情况下,params参数传递的数据会被拼接到请求url后面,而data参数传递的数据会被放在请求体中提交。但是使用GET请求时,axios默认采取params方式传递数据,即将参数拼接到url后面,这个过程有可能会发生一些问题导致返回400 Bad Request错误。
解决这个问题的方法就是手动指定参数传递的方式。如果要使用params方式,需要将参数放到params对象中,而如果要使用data方式,需要将参数放到data对象中。代码示例如下:
// 使用params方式传递参数 axios.get('/api/getData', { params: { name: 'Tom', age: 18 } }).then(res => { console.log(res) }).catch(err => { console.log(err) })
// 使用data方式传递参数 axios({ method: 'get', url: '/api/getData', data: { name: 'Tom', age: 18 } }).then(res => { console.log(res) }).catch(err => { console.log(err) })