请问微信小程序有类似Vue.http.interceptors.push的全局AJAX拦截器吗?

  • 最近有一个需求,使用token来做微信小程序的用户的登录验证。

  • 我通过req.header里的自定义的一个字段来传递token给后端。

所以每一个AJAX之后都需要判断response.header里是否有返回token?

1.如果没有返回,那说明不是第一次登录、token还没有过期
2.如果返回了一个token给我,那我就把这个token赋值在request.header里自定义的某个字段里。

但是我发现Vue或者JQ里都有一些AJAX的拦截器,可以全局劫持AJAX,如果微信小程序里,没有类似的拦截器,是不是就只能多写很多重复的代码了呢...

希望已经有一些经验的前辈,给点建议,感谢了!鞠躬!

阅读 5.5k
4 个回答

在wxrequest的基础上封装一层不就行了,
把你需要的这些公共逻辑封装到自己的request模块里,
所有请求都通过这个模块处理,那些所谓的拦截器不也就是让所有请求都通过它来处理

我用了localstorage,做全局的拦截,毕竟token还是有时效性的,通过每次的ajax来更新localstorage中的token

可以自己封装用微信的request自己封装个,不想重复造轮子的话可以直接引入fly http组件,类似于vue的axios,兼容小程序还很小。可以参考我的文章:
http://callmesoul.cn/xiao-che...

可以参考 WePY 中的配置, 在app.wpy中设置,
// 统一拦截request请求配置

    this.intercept('request', {
    // 发出请求时的回调函数
        config (p) {
             
            return p;
        },
    });
推荐问题