vue拦截请求添加loading

var queue = {}
axios.create({
timeout: 60000
})
axios.defaults.baseURL = baseUrl
// request interceptor
axios.interceptors.request.use(config => {
queue[config.url] = config.url;
const token = sessionStorage.getItem(‘Access-Token’)
if (token) {
config.headers[‘Access-Token’] = token
}
// const imgKey = sessionStorage.getItem(‘imgKey’)
// if(imgKey){
// config.headers[‘Captcha-Key’] = imgKey;
// config.headers[‘Captcha-Code’] = sessionStorage.getItem(‘imgCode’);
// sessionStorage.removeItem(‘imgKey’)
// sessionStorage.removeItem(‘imgCode’)
// }
return config
}, (err) => {
console.error(err)
Message.error(‘请求异常,’ + err)
})
axios.interceptors.response.use((res) => {
if (res.status === 200) {

const responseData = res.data
if (responseData.returnCode) {
  if (responseData.returnCode == '000000') {
    return responseData
  } else {
    Message.closeAll()
    Message.error('服务器处理异常,Error:' + responseData.returnMsg)
  }
  return false
}
if (responseData.code === 200) {
	delete queue[res.url]
	if(Object.keys(queue).length){
		//关闭loading
	}
  return responseData
} else if (responseData.code === 401) {
  sessionStorage.removeItem('Access-Token')
  sessionStorage.clear();
  router.push({ path: '/login' })
  Message.closeAll()
  Message.error('登录已失效,请重新登录')
} else {
  console.log(res.data.msg)
  const ms = responseData.message ? responseData.message : res.data.msg
  Message.closeAll()
  Message.error('服务器处理异常,Error:' + ms)
}

} else {
Message.closeAll()
Message.error(‘服务器通信异常,Error:’ + res.message || res.msg)
}
}, (err) => {
Message.closeAll()
Message.error(‘服务器异常,’ + err)
})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在引用的代码中,第一部分是一个名为`api.js`的文件,其中定义了两个方法`getuserInfo`和`getuserInfos`,分别用于发送请求并获取用户信息。其中,`getuserInfo`方法使用了默认的请求方式,而`getuserInfos`方法使用了加载动画的请求方式。 在第二部分的代码中,是一个名为`home.vue`的页面文件。该页面中有两个点击事件,分别是`btnloading`和`btn`。其中,`btnloading`调用了`getuserInfos`方法来发送请求,并在控制台打印返回的数据。而`btn`调用了`getuserInfo`方法来发送请求,并同样在控制台打印返回的数据。 根据上述代码,可以看出在请求拦截中使用了`loading`指令,具体是在`getuserInfos`方法中使用了带有加载动画的请求方式。也就是说,当调用`getuserInfos`方法时,会显示一个加载动画,直到请求完成后才会消失。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [axios+vant封装(加载loading动画和不加载loading动画)](https://blog.csdn.net/weixin_39338852/article/details/115617324)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [在微信小程序中使用vant的方法](https://download.csdn.net/download/weixin_38521831/12941081)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值