收藏
回答

使用插件后, wx.request不允许重写

问题模块 框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
API和组件 小程序 Bug wx.request 微信iOS客户端 6.6.6 2.0.9

为了解决wx.request并发的限制, 通过以下代码重载了wx.request的实现

var wxRequest = wx.request;

Object.defineProperty(wx,  "request" , { writable:  true });

wx.request = function(){

//重写wx.request逻辑

}

不使用插件是正常的, 但如果使用插件, 报以下的错误:

sdk uncaught third Error 

 Cannot redefine property: request 

 TypeError: Cannot redefine property: request


请问, 这是使用插件后安全性限制导致的吗? 如果是的话, 有没有解决办法(原始需求是想重写wx下的某些方法)?


最后一次编辑于  2018-06-11  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

3 个回答

  • 一碗nina
    一碗nina
    2018-06-11

    你好,请问你具体使用了什么样的插件呢,可以提供代码片段看看。

    2018-06-11
    赞同
    回复
  • 北冰洋
    北冰洋
    2018-06-11

    使用的是

    "plugins": {

    "WechatSI": {

    "provider": "wx069ba97219f66d99",

    "version": "0.0.6"

    }

    },

    这个插件

    2018-06-11
    赞同
    回复
  • raphealguo
    raphealguo
    2018-06-11

    在插件模式下不允许重写全局方法或者wx下的方法,这是为了保护插件和小程序双方数据安全。 你可以自己起一个新的API名字,你自己的代码用这个新的名字去调用即可

    2018-06-11
    赞同
    回复 1
    • 北冰洋
      北冰洋
      2018-06-11

      我不是定义插件的代码中重写wx.request, 而是在使用插件的项目中重写wx.request, 也不支持吗?

      代码片段:  wechatide://minicode/zSNKP5ms7CSP

      2018-06-11
      回复