作者:yoyokk99的秋天 | 来源:互联网 | 2023-10-13 12:15
axiospost请求传递request-bodyrequest-queryheaders(get或者不直接使用get、post使用axios道理方法都类似,注意:get没有请求体
axios post 请求传递request-body request-query headers(get 或者不直接使用get、post使用axios 道理方法都类似,注意:get没有请求体,如果要用get方法,后端就不能用@requestBody来接收,相应可以改为@requestParams接收)
self.$axios.post('/api/ui/ombs/login', {//request-body password: self.ruleForm.password, username: self.ruleForm.username }, {//request-query params:{ code:self.ruleForm.checkCode }, headers:{ 'Content-type':'application/json' } } )
axios请求拦截器封装headers token等
// 添加请求拦截器,在请求头中加token axios.interceptors.request.use(cOnfig=> { if(store.state.xaiot_token){ if(config.method === 'post'){ config.headers['usid']=`${store.state.xaiot_token}` if(config.headers['Content-Type'] === undefined) config.headers['Content-Type']='application/json' else config.headers['Content-Type']=config.headers['Content-Type'] if(config.headers['Accept'] === undefined) config.headers['Accept']='application/json' else config.headers['Accept']=config.headers['Accept'] } } return config; }, error => { // 对请求错误做些什么 return Promise.reject(error); });
响应拦截器
// http response 拦截器 axios.interceptors.response.use( respOnse=> { if(response.data.success === false) switch (response.data.error_code) { case 10013: Message({duration:1000,message:response.data.error_msg,type:'warning',onClose:res =>{ //清空token并跳转 store.commit('set_xaiot_token_key','') store.commit('set_xaiot_token','') router.replace({ path: '/login', query: {redirect: router.currentRoute.fullPath}//登录成功后跳入浏览的当前页面 }) }}) break; } return response; }, error => { console.log() if (error.response) { switch (error.response.status) { case 401: Message({duration:1000,message:'请重新登录,正在前往登录页...',type:'warning',onClose:res =>{ //清空token并跳转 store.commit('set_xaiot_token_key','') store.commit('set_xaiot_token','') router.replace({ path: '/login', query: {redirect: router.currentRoute.fullPath}//登录成功后跳入浏览的当前页面 }) }}) break; } } return Promise.reject(error) })