因为小程序需要在接口增加token及openid判断登录状态,而之前做的接口又太多,需要统一添加,思路是统一拦截请求,然后给每个请求的header加上token再请求,可以使用uni.addInterceptor进行request拦截

uni.addInterceptor('request',{
	invoke(invoke){
        //请求前拦截并处理
		invoke.header = {...invoke.header,openid:openid,token_key:cts.token_key}
	},
	success(res) {
        //请求成功后的接口
		// console.log('检测到接口',res)
	}
})

官方参数说明:

参数名类型必填默认值说明平台差异说明
invokeFunction拦截前触发
returnValueFunction方法调用后触发,处理返回值
successFunction成功回调拦截
failFunction失败回调拦截
completeFunction完成回调拦截

需要注意的是:只能对uni.request进行拦截,自己封装的ajax拦截不到

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐