项目中的ajax请求想要在一个地方针对某种情况做统一处理,使用的是webpack-zepto。

图片描述

如图,我现在是在每个组件里面都要写一个res.status === -1的判断,我想要能在一个地方监控到只要出现-1这种情况就执行一段图片中的那段代码,求大神指点指点。

阅读 3.7k
2 个回答

单独写一个ajax.js 封装异常处理,然后在每个页面引用你的ajax.js不行吗

一般ajax库都有拦截器的,你可以去看一下文档
ps:这是我用vue-resource写的拦截器,基本差不多的

//main.js
//vue-resource拦截器
Vue.http.interceptors.push(function (request, next) {
    if(request.method == 'POST') { //post请求 设置Content-Type
        request.headers.set('Content-Type', 'application/x-www-form-urlencoded')
    }
    next(res => {  //检测token是否失效
        if(res.data.code == '400') {
            if(res.data.msg == '登录失效') {
                console.log('拦截器')
                this.$store.dispatch('toast', {
                    message: res.data.msg,
                    icon: '2'
                })
                setTimeout(() => {
                    this.$router.push({
                        name: 'login'
                    })
                }, 1500)
            }
        }
        return res
    })
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题