这个问题很奇怪,所有的签名数据都正确,通过控制台一模一样的数据,可能上一次还好好的,下一次可能就jsapi调用错误
function wxpageinit(app_id, Timestamp, Nonce_str, sign) { wx.config({ beta: true, debug: false, appId: app_id, timestamp: Timestamp, nonceStr: Nonce_str, signature: sign, jsApiList: ["checkJsApi", "chooseImage", "previewImage", "uploadImage", "downloadImage", "getNetworkType", "onHistoryBack", "selectEnterpriseContact", ] }); wx.ready(function () { try { wx.onHistoryBack(function () { return historyreturn(); }) } catch (e) { } }) } function setwxsign() { $.ajax({ url: "/xxxxxxx.action?v=1",//后台签名 type: "GET", data: {}, contentType: "text/plain; charset=utf-8", dataType: "json", success: function (p_datas) { if (p_datas == null | p_datas.length == 0) { return; } if (p_datas[0].result != "success") { return; } try { data = p_datas[0]; if (data != undefined) { setTimeout("wxpageinit(data.app_id, data.timestamp, data.nonceStr, data.sign);", 1000 ); } } catch (e) { alert(e.Message); } }, fail: function (p_error) { } }) } try { $(function () { setwxsign();}); } catch (e) { }
注意红色部分,增加一个延时再出现fail_permission denied的几率少了很多。请忽略代码风格,公司的老传家代码。
可能原因:
1.本地js未加载前执行了wx.config导致,但是并没有报wx.config错误,而且wx.ready正常
2.可能是企业微信服务器的问题,(自从企业微信上线通讯录组件替换后才出现该问题),之前的管理员缓存问题至今好像还未解决。