微信+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 相关文章推荐
超酷的网页音乐播放器DewPlayer使用方法
Dec 18 Javascript
treepanel动态加载数据实现代码
Dec 15 Javascript
js菜单点击显示或隐藏效果的简单实例
Jan 13 Javascript
JavaScript中读取和保存文件实例
May 08 Javascript
js获取隐藏元素宽高的实现方法
May 19 Javascript
微信小程序  action-sheet详解及实例代码
Nov 09 Javascript
js和jquery中获取非行间样式
May 05 jQuery
jQuery实现节点的追加、替换、删除、复制功能示例
Jul 11 jQuery
AngularJS动态添加数据并删除的实例
Feb 27 Javascript
JS实现移动端点击按钮复制文本内容
Jul 28 Javascript
js常用方法、检查是否有特殊字符串、倒序截取字符串操作完整示例
Jan 26 Javascript
vue实现分页的三种效果
Jun 23 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
现磨咖啡骗局!现磨咖啡=新鲜咖啡?现磨咖啡背后的猫腻你不懂!
2019/03/28 冲泡冲煮
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
2007/02/11 PHP
PHP实现MySQL更新记录的代码
2008/06/07 PHP
PHP 实现explort() 功能的详解
2013/06/20 PHP
初识通用数据库操作类――前端easyui-datagrid,form(php)
2015/07/31 PHP
正则表达式搭配js轻松处理json文本方便而老古
2013/02/17 Javascript
js获得指定控件输入光标的坐标兼容IE,Chrome,火狐等多种主流浏览器
2013/05/21 Javascript
JQuery分别取得每行最后一列和最后一行的示例代码
2013/08/18 Javascript
js onload处理html页面加载之后的事件
2013/10/30 Javascript
基于JQuery实现仿网易邮箱全屏动感滚动插件fullPage
2015/09/20 Javascript
基于jQuery实现中英文切换导航条效果
2016/09/18 Javascript
详解jQuery lazyload 懒加载
2016/12/19 Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/27 Javascript
详解vue项目首页加载速度优化
2017/10/18 Javascript
详解javascript appendChild()的完整功能
2018/08/18 Javascript
记一次vue-webpack项目优化实践详解
2019/02/17 Javascript
浅谈JavaScript_DOM学习篇_图片切换小案例
2019/03/19 Javascript
vue 移动端记录页面浏览位置的方法
2020/03/11 Javascript
简单谈谈python中的多进程
2016/11/06 Python
Python使用微信SDK实现的微信支付功能示例
2017/06/30 Python
利用python解决mysql视图导入导出依赖的问题
2017/12/17 Python
用python制作游戏外挂
2018/01/04 Python
Python3内置模块之json编解码方法小结【推荐】
2020/12/09 Python
Python Django 实现简单注册功能过程详解
2019/07/29 Python
python爬虫豆瓣网的模拟登录实现
2019/08/21 Python
python修改文件内容的3种方法详解
2019/11/15 Python
PyTorch实现ResNet50、ResNet101和ResNet152示例
2020/01/14 Python
python GUI库图形界面开发之PyQt5计数器控件QSpinBox详细使用方法与实例
2020/02/28 Python
Windows下Sqlmap环境安装教程详解
2020/08/04 Python
Kathmandu澳洲户外商店:新西兰户外运动品牌
2017/11/12 全球购物
英国女性时尚鞋类的潮流制造者:Koi Footwear
2018/10/19 全球购物
法国发饰品牌:Alexandre De Paris
2018/12/04 全球购物
Moda Operandi官网:美国奢侈品电商,海淘秀场T台同款
2020/05/26 全球购物
大学生旅游业创业计划书
2014/01/29 职场文书
超市店庆活动方案
2014/08/31 职场文书
python基础入门之普通操作与函数(三)
2021/06/13 Python