vue传参------params和data的区别
在Vue中使用axios时,注意到配置选项中包含params和data两者,以为他们是相同的,其实他们之间的差别还是挺大的。
因为params是添加到url的请求字符串中的,用于get请求。
而data是添加到请求体(body)中的, 用于post请求。
export default {
getPageList(page, limit, searchObj) {
return request({
url: `/admin/core/userInfo/list/${page}/${limit}`,
method: 'get',
params: searchObj
//searchObj 对象中封装了page,limit,还有mobile
})
}
}
如果前端请求的方式是 post,并且后端的HTTP请求为 @PostMapping,那么后端的参数上面要写 @RequestBody ,而且前端传递参数的时候要写 data,因为是 Json 传参。 因为用post请求使用data传参的时候,参数是放在请求体中的,所以地址栏上也不显示具体的参数。
如果是以get形式的传参,并且传的是一个对象,就用params,他会把你参数的内容 最后分散到你地址栏后面的问号(?)后面,如上面的例子最后的地址就是:
http://127.0.0.1:8110/admin/core/userInfo/list/1/5?mobile=12345678912
总结
如果请求头里面或者浏览器地址里面有就用params,找不到就用data,或者就是你能看见的参数,传参就用params,看不见的参数,就用data