uni-app unicloud函数会被request拦截器拦截 不希望官网拦截

uni-app unicloud函数会被request拦截器拦截 不希望官网拦截

操作步骤:

  1. APP.VUE中添加uni.request拦截器
  2. 拦截器中动态组装请求地址
  3. 任意界面调用unicloud.callfunction函数请求云函数
  4. bug出现,云函数被组装了错误的地址导致失败

预期结果:

拦截器不应该拦截官方自己的网络请求

实际结果:

会被拦截导致请求失败

bug描述:

unicloud云函数调用时会被request拦截器拦截,希望官网针对官方的所有API重命名一下网络请求函数,不要让request拦截器拦截

2 回复

需求已了解,我们看下怎么处理,目前也可以自行在拦截器内判断参数来绕过

更多关于uni-app unicloud函数会被request拦截器拦截 不希望官网拦截的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在uni-app中,uni.request拦截器确实会拦截所有通过uni.request发起的网络请求,包括uniCloud.callFunction内部使用的请求。这是因为uniCloud.callFunction底层实现依赖于uni.request

目前没有官方配置可以排除uniCloud请求不被拦截。建议在拦截器中通过判断请求URL或添加特定标记来跳过云函数请求。例如,在拦截器中检查URL是否包含/client/路径(uniCloud请求的固定路径),或为云函数请求设置自定义header,在拦截器中识别并放行。

示例代码:

// 在拦截器中判断
uni.addInterceptor('request', {
  invoke(args) {
    if (args.url.includes('/client/')) {
      // 直接返回,不修改云函数请求
      return args;
    }
    // 其他请求处理逻辑
  }
});
回到顶部