VUE中request请求拦截器,Axios发送请求时params和data的区别
exportfunctiondeleteByIds(params){returnrequest({url:'/user/getUser',method:'get',params:params})}exportfunctionupdatePerson(params){returnrequest({url:'/user/updatePerson',method:'post',data
在使用request拦截器时,可以设置请求头,验证token等
service.interceptors.request.use(config => {
config.headers['Content-Type'] = 'application/x-www-form-urlencoded'
// 解决axios post请求头为json,方便后台获取数据
if (config.method === 'post') {
config.headers['Content-Type'] = 'application/json' // 注意:设置很关键
}
if (store.getters.token) {
config.headers['X-Token'] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
}
return config
}, error => {
// Do something with request error
console.log(error) // for debug
Promise.reject(error)
})
在使用axios时,注意到配置选项中包含params和data两者,以为他们是相同的,实则不然。 因为params是添加到url的请求字符串中的,用于get请求。 而data是添加到请求体(body)中的, 用于post请求。
列如:
export function deleteByIds(params) {
return request({
url: '/user/getUser',
method: 'get',
params: params
})
}
export function updatePerson(params) {
return request({
url: '/user/updatePerson',
method: 'post',
data: params
})
}
更多推荐
所有评论(0)