微信+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 相关文章推荐
一个不错的用JavaScript实现的UBB编码函数
Mar 09 Javascript
最短的javascript:地址栏载入脚本代码
Oct 13 Javascript
如何让DIV可编辑、可拖动示例代码
Sep 18 Javascript
jQuery中trigger()方法用法实例
Jan 19 Javascript
JS实现漂亮的窗口拖拽效果(可改变大小、最大化、最小化、关闭)
Oct 10 Javascript
javascript中的3种继承实现方法
Jan 27 Javascript
基于JSON格式数据的简单jQuery幻灯片插件(jquery-slider)
Aug 10 Javascript
手机软键盘弹出时影响布局的解决方法
Dec 15 Javascript
jquery 实时监听输入框值变化的完美方法(必看)
Jan 26 Javascript
原生javascript实现文件异步上传的实例讲解
Oct 26 Javascript
仿淘宝JSsearch搜索下拉深度用法
Jan 15 Javascript
微信小程序之 catalog 切换实现解析
Sep 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读取XML的常见方法实例总结
2017/04/25 PHP
Swoole4.4协程抢占式调度器详解
2019/05/23 PHP
jQuery总体架构的理解分析
2011/03/07 Javascript
使用Json比用string返回数据更友好,也更面向对象一些
2011/09/13 Javascript
JS实现多物体缓冲运动实例代码
2013/11/29 Javascript
js 数值转换为3位逗号分隔的示例代码
2014/02/19 Javascript
JS实现至少包含字母、大小写数字、字符的密码等级的两种方法
2015/02/03 Javascript
vue监听scroll的坑的解决方法
2017/09/07 Javascript
vue中for循环更改数据的实例代码(数据变化但页面数据未变)
2017/09/15 Javascript
JS实现分页浏览横向图片(类轮播)实例代码
2017/11/06 Javascript
网页爬虫之cookie自动获取及过期自动更新的实现方法
2018/03/06 Javascript
微信小程序手机号码验证功能的实例代码
2018/08/28 Javascript
vue.js添加一些触摸事件以及安装fastclick的实例
2018/08/28 Javascript
Phaser.js实现简单的跑酷游戏附源码下载
2018/10/26 Javascript
Vue.js 中的 v-model 指令及绑定表单元素的方法
2018/12/03 Javascript
js实现视图和数据双向绑定的方法分析
2020/02/05 Javascript
[04:10]DOTA2英雄梦之声_第11期_圣堂刺客
2014/06/21 DOTA
python实现的一个p2p文件传输实例
2014/06/04 Python
Python中获取对象信息的方法
2015/04/27 Python
python读写二进制文件的方法
2015/05/09 Python
Python中的下划线详解
2015/06/24 Python
Python下rrdtool模块的基本使用方法
2015/11/13 Python
使用python将图片格式转换为ico格式的示例
2018/10/22 Python
Django中自定义模型管理器(Manager)及方法
2019/09/23 Python
Pandas聚合运算和分组运算的实现示例
2019/10/17 Python
html5的pushstate以及监听浏览器返回事件的实现
2020/08/11 HTML / CSS
Perfume’s Club澳大利亚官网:西班牙领先的在线美容店
2021/02/01 全球购物
小学五年级学生评语
2014/04/22 职场文书
保险公司开门红口号
2014/06/21 职场文书
银行主办会计岗位职责
2014/08/13 职场文书
中学生教师节演讲稿
2014/09/03 职场文书
2015年幼儿园卫生保健工作总结
2015/05/12 职场文书
MySQL约束超详解
2021/09/04 MySQL
详解Oracle块修改跟踪功能
2021/11/07 Oracle
十大必看国产动漫排名,魁拔上线,第二曾在日本播出
2022/03/18 国漫
关于EntityWrapper的in用法
2022/03/22 Java/Android