【钉钉小程序开发】关于 Uncaught (in promise) { error : 400 , errorMessage : “ unknown “ } 报错

问题描述

在这里插入图片描述

在钉钉小程序开发的过程当中,企业内部小程序需要用到免登功能,看官方文档调用dd.getAuthCode这个api即可获取免登授权码。但是出现了 Uncaught (in promise) { error : 400 , errorMessage : " unknown " } 报错。

原代码展示

钉钉提供的代码:
在这里插入图片描述
我的代码:

在这里插入图片描述

我们一字不差地将官方代码复制粘贴下来,但是就是重复报这个问题,排查了好几遍,感觉并不是代码的问题。以下就是解决该bug的思路和过程。

解决过程

先来说一说在网上搜到的解决方法:
在promise后面加上.catch((e) => {}),报错就解决了。

dd.getAuthCode({
    success:function(res){
        /*{
            authCode: 'hYLK98jkf0m' //string authCode
        }*/
    },
    fail:function(err){
    }
}).catch((e)=>{
	console.log(e);
});

怎么说呢。。。这个方法确实好,控制台确实不报错了,但是似乎并没有解决实质的问题。因为本质问题是这个api不能正常调用,压根就没走success,直接跳到fail。这种解法就是直接把错误抛出了,一般是你不需要请求成功之后的任何参数返回值,就算出错了也无所谓只要能正常走下面的代码就行时才决定抛出异常,感觉就像是在“掩耳盗铃”。但是我们这里需要用到返回的免登授权码,所以显然是不能“自欺欺人”的。

在这里插入图片描述

还有一种方法是说接口响应拦截器里面的问题,但是我们并未用到请求接口,所以不考虑这种解法。

再给大家康一康GPT的解答:

在这里插入图片描述

搜索无果之后,向钉钉工单中心提交了单子,工作人员给出的解决方法如下:

// index.js里加上:
getAuthCode(){
 dd.getAuthCode({
   success:function(res){
      dd.alert({
  title: '亲',
  content:'res',
  success: () => {
  console.info(res)
  },
});

    },
    fail:function(err){
      dd.alert({
  title: '亲',
  content: 'err',
  buttonText: '我知道了',
  fail: () => {
    dd.alert({
      title: '用户点击了「我知道了」',
    });
  },
});

    }
});
  },

// index.axml加上:
<view>
  <button size="default" type="primary" onTap="getAuthCode">getAuthCode</button>
</view>

在这里插入图片描述
很明显,工作人员给的代码其实跟官网上的差不多,当然还是没能解决问题。然后工作人员说他也不清楚了,也许是格式问题。emmmmm,好一个格式问题,我差点就信了…盲猜他可能是急着下班叭(毕竟他回复我的时候已经17:53了)。。。

在这里插入图片描述

后来,我以为可能是创建项目的过程中,哪一步配置出现问题了,就让我的搭档重新创建了这个项目(好在我们还没开始写这个项目,所以不用担心重建的工作量),但是很可惜还是未能解决。

解决方法

Last but not least,正准备打算彻夜通读钉钉开发文档来改bug的时候,我搭档说他解决了!
最ex的bug,往往需要采取最简单的解决方式——钉钉开发工具的版本问题。。。

在这里插入图片描述

这是我们最初使用的版本,目前比较新的版本都会报这个错。(真心觉得这个升级版很不好用,除了这些bug外,里面的很多功能都点不动,比如选择关联应用都无法选择,避雷避雷!!!)

在这里插入图片描述

下面这个是可以成功获取免登授权码的版本,虽然也是最新版本,但是这一版是旧版的最新版本,相对来说稳定一点。(还是旧版的好用一些!但是目前不知道还会出现哪些bug。。。)

在这里插入图片描述

以上就是解决这个bug的整个过程,如有其他或更好的解决方法,欢迎不吝赐教!
如有误,请指正!

在这里插入图片描述

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值