背景
原请求将数据放到params中,导致数据拼接在请求地址后面,具有高级安全隐患。
请求方法:
axios.request({
url: '/login',
method: 'post',
params: {
username: '****',
password: '****'
}
})
出现的问题
- 将params改成data,使数据放在请求体中,但后端自定义的UserDetailsService获取到的username为"",导致登录失败。
- 用postman发送改请求,登录成功。
- 取postman看到的请求头
'Content-Type': 'application/x-www-form-urlencoded'
, 在请求中添加headers中并添加该参数,但后端还是同样问题。
解决方法
通过postman右边的</>
按钮,选择nodeJS - Axios,发现需要引入qs对参数进行stringify,最终调整如下:
import qs from 'qs'
axios.request({
url: '/login',
method: 'post',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
data: qs.stringify({
username: '****',
password: '****'
})
})
标签:UserDetailsService,username,qs,Vue,请求,post,login,postman
From: https://www.cnblogs.com/mjs-mark/p/17330427.html