钉钉PC端开发 错误码:9 错误信息:签名校验失败
项目场景:
一个前后端分离的钉钉微应用程序在进入的时候报了这个错误。
因为这个项目已经上线部署了,之前开发没有遇到这个问题,上线之后也没有,重新看这个项目的时候报这个错误。
问题描述:
错误码:9 错误信息:签名校验失败
原因分析:
一开始以为是钉钉自身迭代才产生的问题,后来发现是钉钉不支持路由模式
解决方案:
一开始在网上找到一个解决办法:删除dd.config({})
这个方法确实可以,但是使用这个方法之后就不能使用绝大部分钉钉的API了,包括通讯录调用。。。
所以这个是一个很坑的解决方法。
正常来说肯定是不能这样做的。
后来打印前端传过来的各种信息之后,从URL中发现了问题:
从图片上看,带了个#号
为什么会带这个#?
这是VUE-ROUTER vue路由的经典产物。一般路由文件不设置路由模式的话,一般是默认hash模式,然后在浏览器访问的时候就会有一个#
SO,这就很简单,把hash模式改成history模式问题就解决了