微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决


Posted in Javascript onSeptember 09, 2016

今天偶然的把微信jssdk的debug打开后,发现调试信息总是提示签名错误,感情前两天api的"偶尔"不生效,不是因为还没执行代码,而是因为签名没正确啊!,这就是个100%可以重现的错误

但只要这个SPA刚刷新过,或加载完后中途没有跳转,,签名就会是正确的。

而当路由发生改变,我们对新"跳转"的页面重新签名之后,却出现了签名错误,而我们的签名明明是正确的,把各种参数拿去微信JS签名校验工具(http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign)去比对是一样的!

后面重大发现。。。其实

只要加载SPA入口页面的时候签名一次就行了,因为微信拿来签名的URL好像只认这个SPA第一个加载的页面的URL。。。window.location.href跳转其实就相当又加载了一次SPA

曾以为路由跳转了,就应该拿新的url去重新签名,却恰恰因为这点,把签名校验给搞出错了。。

所以解决方案就是:

只签名第一个加载的页面就行了,用ui-router进行的跳转,似乎只是改了地址。。而这个地址的修改。。微信的签名似乎不认。。他就认第一个加载的页面的URL。

通过此文,希望能帮助到遇到此问题的朋友,谢谢大家对本站的支持!

Javascript 相关文章推荐
Tab页界面,用jQuery及Ajax技术实现
Sep 21 Javascript
Dojo 学习要点
Sep 03 Javascript
jquery 提示信息显示后自动消失的具体实现
Dec 18 Javascript
JavaScript的常见兼容问题及相关解决方法(chrome/IE/firefox)
Dec 31 Javascript
简介JavaScript中的getSeconds()方法的使用
Jun 10 Javascript
BootStrap 实现各种样式的进度条效果
Dec 07 Javascript
一个可复用的vue分页组件
May 15 Javascript
vue 过滤器filter实例详解
Mar 14 Javascript
原生js实现form表单序列化的方法
Aug 02 Javascript
JavaScript 判断iPhone X Series机型的方法
Jan 28 Javascript
微信小程序使用Vant Weapp组件库的方法步骤
Aug 01 Javascript
JavaScript 替换所有匹配内容及正则替换方法
Feb 12 Javascript
Vuejs第十三篇之组件——杂项
Sep 09 #Javascript
jQuery属性选择器用法示例
Sep 09 #Javascript
浅谈jquery.form.js的ajaxSubmit和ajaxForm的使用
Sep 09 #Javascript
vuejs动态组件给子组件传递数据的方法详解
Sep 09 #Javascript
Vuejs第十二篇之动态组件全面解析
Sep 09 #Javascript
js动态生成form 并用ajax方式提交的实现方法
Sep 09 #Javascript
Ajax使用原生态JS验证用户名是否存在
May 26 #Javascript
You might like
《PHP编程最快明白》第四讲:日期、表单接收、session、cookie
2010/11/01 PHP
PHP中读取文件的8种方法和代码实例
2014/08/05 PHP
分享最受欢迎的5款PHP框架
2014/11/27 PHP
PHP实现将HTML5中Canvas图像保存到服务器的方法
2014/11/28 PHP
php实现的通用图片处理类
2015/03/24 PHP
学习PHP session的传递方式
2016/06/15 PHP
javascript打印大全(打印页面设置/打印预览代码)
2013/03/29 Javascript
JS截取字符串常用方法整理及使用示例
2013/10/18 Javascript
用js判断是否为360浏览器的实现代码
2015/01/15 Javascript
基于JavaScript实现全屏透明遮罩div层锁屏效果
2016/01/26 Javascript
微信小程序 开发工具快捷键整理
2016/10/31 Javascript
浅析Ajax语法
2016/12/05 Javascript
微信小程序中使元素占满整个屏幕高度实现方法
2016/12/14 Javascript
ES6中class类用法实例浅析
2017/04/06 Javascript
基于nodejs 的多页面爬虫实例代码
2017/05/31 NodeJs
JS检测window.open打开的窗口是否关闭
2017/06/25 Javascript
JavaScript仿微信(电话)联系人列表滑动字母索引实例讲解(推荐)
2017/08/16 Javascript
微信小程序自定义带价格显示日历效果
2018/12/29 Javascript
微信小程序基于高德地图查找位置并显示文字
2019/10/30 Javascript
python读写文件操作示例程序
2013/12/02 Python
Python中的字符串操作和编码Unicode详解
2017/01/18 Python
Python实现找出数组中第2大数字的方法示例
2018/03/26 Python
Python实现的直接插入排序算法示例
2018/04/29 Python
Python3使用SMTP发送带附件邮件
2020/06/16 Python
Python秒算24点实现及原理详解
2019/07/29 Python
Python函数的迭代器与生成器的示例代码
2020/06/18 Python
英国排名第一的最新设计师品牌手表独立零售商:TIC Watches
2016/09/24 全球购物
七一党建活动方案
2014/01/28 职场文书
数控专业大学毕业生职业规划范文
2014/02/06 职场文书
宝宝满月酒主持词和仪式流程
2014/03/27 职场文书
青年文明号服务承诺
2014/03/31 职场文书
机房搬迁方案
2014/05/01 职场文书
学校安全工作汇报材料
2014/08/16 职场文书
2015年数学教研组工作总结
2015/05/23 职场文书
建国大业观后感600字
2015/06/01 职场文书
Python中for后接else的语法使用
2021/05/18 Python