微信+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 相关文章推荐
jquery获取input表单值的代码
Apr 19 Javascript
JavaScript 笔记二 Array和Date对象方法
May 22 Javascript
QUnit jQuery的TDD框架
Nov 04 Javascript
jQuery验证Checkbox是否选中的代码 推荐
Sep 04 Javascript
动态获取复选框checkbox选中个数的jquery代码
Jun 25 Javascript
js 判断图片是否加载完以及实现图片的预下载
Aug 14 Javascript
微信小程序 监听手势滑动切换页面实例详解
Jun 15 Javascript
vue router自动判断左右翻页转场动画效果
Oct 10 Javascript
使用axios实现上传图片进度条功能
Dec 21 Javascript
微信小程序开发之改变data中数组或对象的某一属性值
Jul 05 Javascript
vue实现div拖拽互换位置
Jul 29 Javascript
layui table表格数据的新增,修改,删除,查询,双击获取行数据方式
Nov 14 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
discuz7 phpMysql操作类
2009/06/21 PHP
深入解析php之apc
2013/05/15 PHP
PHP基于文件存储实现缓存的方法
2015/07/20 PHP
PHP实现批量修改文件后缀名的方法
2015/07/30 PHP
腾讯CMEM的PHP扩展编译安装方法
2015/09/25 PHP
php 数组元素快速去重
2017/05/05 PHP
如何实现动态删除javascript函数
2007/05/27 Javascript
Javascript之旅 对象的原型链之由来
2010/08/25 Javascript
javascript中删除指定数组中指定的元素的代码
2011/02/12 Javascript
兼容主流浏览器的jQuery+CSS 实现遮罩层的简单代码
2014/10/14 Javascript
Javascript中的方法链(Method Chaining)介绍
2015/03/15 Javascript
在JavaScript中操作时间之getMonth()方法的使用
2015/06/10 Javascript
js实现网页抽奖实例
2015/08/05 Javascript
微信小程序开发(一) 微信登录流程详解
2017/01/11 Javascript
d3.js中冷门却实用的内置函数总结
2017/02/04 Javascript
jQuery实现在新增加的元素上添加事件方法案例分析
2017/02/09 Javascript
Vue指令的钩子函数使用方法
2017/03/20 Javascript
微信小程序批量监听输入框对按钮样式进行控制的实现代码
2019/10/12 Javascript
vue中的计算属性和侦听属性
2020/11/06 Javascript
[02:17]快乐加倍!DOTA2食人魔魔法师至宝+迎霜节活动上线
2019/12/22 DOTA
Python socket.error: [Errno 98] Address already in use的原因和解决方法
2014/08/25 Python
Python编程深度学习绘图库之matplotlib
2018/12/28 Python
Python 开发工具PyCharm安装教程图文详解(新手必看)
2020/02/28 Python
pytest fixtures装饰器的使用和如何控制用例的执行顺序
2021/01/28 Python
使用iframe+postMessage实现页面跨域通信的示例代码
2020/01/14 HTML / CSS
美国全球旅游运营商:Pacific Holidays
2018/06/18 全球购物
PyQt 如何创建自定义QWidget
2021/03/24 Python
初中数学教学反思
2014/01/16 职场文书
办公室秘书岗位职责范本
2014/02/11 职场文书
学习雷锋倡议书
2014/04/15 职场文书
残疾人小组计划书
2014/04/27 职场文书
高中同学会活动方案
2014/08/14 职场文书
国富论读书笔记
2015/06/26 职场文书
将图片保存到mysql数据库并展示在前端页面的实现代码
2021/05/02 MySQL
Python实现PIL图像处理库绘制国际象棋棋盘
2021/07/16 Python
基于Python和openCV实现图像的全景拼接详细步骤
2021/10/05 Python