微信+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 相关文章推荐
一个对于Array的简单扩展
Oct 03 Javascript
查找页面中所有类为test的结点的方法
Mar 28 Javascript
Jquery插件分享之气泡形提示控件grumble.js
May 20 Javascript
jQuery中each()、find()和filter()等节点操作方法详解(推荐)
May 25 Javascript
javascript函数的四种调用模式
Jan 08 Javascript
微信小程序中用WebStorm使用LESS
Mar 08 Javascript
JavaScript实现二维坐标点排序效果
Jul 18 Javascript
JS与CSS3实现图片响应鼠标移动放大效果示例
May 04 Javascript
vue中接口域名配置为全局变量的实现方法
Sep 20 Javascript
vue组件文档(.md)中如何自动导入示例(.vue)详解
Jan 25 Javascript
微信小程序实现的自定义分享功能示例
Feb 12 Javascript
每天学点Vue源码之vm.$mount挂载函数
Mar 11 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使用parse_url和parse_str解析URL
2015/02/22 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
2016/04/21 PHP
php中上传文件的的解决方案
2018/09/25 PHP
javascript prototype 原型链
2009/03/12 Javascript
JS request函数 用来获取url参数
2010/05/17 Javascript
JavaScript实现页面滚动图片加载(仿lazyload效果)
2011/07/22 Javascript
在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)
2011/12/20 Javascript
js解析xml字符串和xml文档实现原理及代码(针对ie与火狐)
2013/02/02 Javascript
推荐一个自己用的封装好的javascript插件
2015/01/29 Javascript
在父页面得到zTree已选中的节点的方法
2015/02/12 Javascript
轻松学习jQuery插件EasyUI EasyUI表单验证
2015/12/01 Javascript
JS实现隐藏同级元素后只显示JS文件内容的方法
2016/09/04 Javascript
vue-cli配置环境变量的方法
2018/07/09 Javascript
koa上传excel文件并解析的实现方法
2018/08/09 Javascript
实现高性能javascript的注意事项
2019/05/27 Javascript
Vue-cli3.x + axios 跨域方案踩坑指北
2019/07/04 Javascript
vue中使用v-model完成组件间的通信
2019/08/22 Javascript
关于引入vue.js 文件的知识点总结
2020/01/28 Javascript
[03:47]2015国际邀请赛第三日现场精彩回顾
2015/08/08 DOTA
Python中Django框架利用url来控制登录的方法
2015/07/25 Python
在Python程序中操作MySQL的基本方法
2015/07/29 Python
Python中线程的MQ消息队列实现以及消息队列的优点解析
2016/06/29 Python
Python的collections模块中的OrderedDict有序字典
2016/07/07 Python
python读取视频流提取视频帧的两种方法
2020/10/22 Python
查看python下OpenCV版本的方法
2018/08/03 Python
Python字符串中添加、插入特定字符的方法
2019/09/10 Python
python多进程(加入进程池)操作常见案例
2019/10/21 Python
基于python生成英文版词云图代码实例
2020/05/16 Python
本科毕业生的求职信范文
2013/11/20 职场文书
销售文员岗位职责
2013/11/29 职场文书
外企办公室竞聘演讲稿
2013/12/29 职场文书
中学生打架检讨书
2014/02/10 职场文书
卖房协议书
2014/04/11 职场文书
四风批评与自我批评范文
2014/10/14 职场文书
拔河比赛队名及霸气口号
2015/12/24 职场文书
MySQL普通表如何转换成分区表
2022/05/30 MySQL