vue-resource请求拦截和响应拦截设置

main.js文件

// 使用ajax请求插件
var VueResource = require('vue-resource')
Vue.use(VueResource)

// 增加ajax请求预处理选项
 Vue.http.interceptors.push(function (request, next) {
// request请求拦截,next响应拦截
	request.method = 'POST';//在请求之前可以进行一些预处理和配置
  // 返回
  next((res) => {
    if (res.ok) {
      if (res.data.code === '401') {
        var href = window.location.hash.slice(1)
        if (href === '/index') {
          setTimeout(function () {
            window.location.href = 'login.html'
          }, 3000)
        } else {
        // 当前路由不为/index 弹出重新登录弹窗
          this.bus.$emit('relogin')
          res.ok = false
        }
      } else if (res.data.code !== '200' && res.data.code !== '201') { // 201特殊用途,可以作为临时通过code
        this.$message({
          type: 'error',
          showClose: true,
          duration: 300000,
          message: res.data.msg
        })
        res.ok = false
      } else if (req.url.includes('/loginForSpringSecurity') && Vue.lsListeners.length) {
        Vue.lsListeners.forEach(func => {
          try {
            func()
          } catch (err) {
            console.log('登录成功回调函数调用失败', err)
          }
        })
      }
    } else {
      this.$message({
        showClose: true,
        duration: 300000,
        type: 'error',
        message: '请求 ' + res.url + ' 时发生错误,错误码:' + res.status
      })
    }
  })
})

调用时

POST请求
  this.$http.post(
      requestUrl,
      requestParams
    ).then(res=>{},res=>{})
GET请求请求
  this.$http.get(
      requestUrl,
      requestParams
    ).then(res=>{},res=>{})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值