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

发布于 8 年前作者 yongren14749 次浏览最后编辑 8 年前来自 ask

为了解决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下的某些方法)?

3 回复
leiwei
leiwei1 楼6 年前

使用的是

“plugins”: {

“WechatSI”: {

“provider”: “wx069ba97219f66d99”,

“version”: “0.0.6”

}

},

这个插件

bpan
bpan2 楼6 年前

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

weihuang
weihuang3 楼6 年前

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