使用uni.addInterceptor添加各拦截器

3,841 阅读1分钟

建立一个interceptor.js

export function navInterceptor() {
    uni.addInterceptor('navigateTo', {
      invoke(args) {
        // navigateTo 触发前拼接 url 
	    var a = args.url.split('/')
        console.log(a)
       },
      success(args) {
        // 请求成功后,修改code值为1
        // args.data.code = 1
      }, 
      fail(err) {
        // console.log('interceptor-fail',err)
      }, 
      complete(res) {
       // console.log('interceptor-complete',res)
      }
    })
}
export function reqInterceptor() {
    uni.addInterceptor('request', {
      invoke(args) {
        // request 触发前拼接 请求数据 
	    args.header = {
		    Authorization:'11'
	    }
        console.log(args)
      },
      success(args) {
        // 请求成功后,修改code值为1
        console.log(args)
      }, 
      fail(err) {
        // console.log('interceptor-fail',err)
      }, 
      complete(res) {
        // console.log('interceptor-complete',res)
      }
    })
}

全局注册

在APP.vue中

import {navInterceptor, reqInterceptor} from '@/common/interceptor.js'

在页面加载后挂载

onLaunch: function() {
		navInterceptor()
		reqInterceptor()
	},

在单个页面注册

import {navInterceptor, reqInterceptor} from '@/common/interceptor.js'

在页面加载后挂载

onLoad: function() {
	navInterceptor()
	reqInterceptor()
},