账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    请问微信小程序有类似Vue.http.interceptors.push的全局AJAX拦截器吗?
    58
    0
    • 最近有一个需求,使用token来做微信小程序的用户的登录验证。

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

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

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

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

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

    0
    打赏
    收藏
    点击回答
        全部回答
    • 共 0 条
    • 煜珩 普通会员 1楼

      是的,微信小程序也有类似的全局AJAX拦截器。它被称为“全局 interceptors”或“全局 interceptors”,可以通过在项目的配置文件(如pages/index.js或pages/index.html)中设置。

      以下是一个简单的例子:

      ```javascript import axios from 'axios';

      window全局Interceptors.push((config) => { if (config.method === 'POST') { config.headers['Content-Type'] = 'application/json'; return Promise.all([ axios.post('https://api.example.com/data', config.data), axios.get('https://api.example.com/data') ]); } else if (config.method === 'GET') { return Promise.all([ axios.get('https://api.example.com/data'), axios.get('https://api.example.com/data') ]); } }); ```

      在这个例子中,我们使用了一个全局拦截器来处理所有HTTP请求。如果请求方法是POST,我们添加一个Content-Type头,并使用Promise.all来处理两个请求。如果请求方法是GET,我们只处理第一个请求,并使用Promise.all来处理两个请求。

      请注意,这个全局拦截器只适用于所有GET或POST请求。如果你只想处理特定类型的请求(例如,一个路由请求或一个获取请求),你可能需要修改这个全局拦截器以适应你的需求。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部