微信+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 (三) 管理jQuery包装集
Feb 23 Javascript
jQuery EasyUI API 中文文档 - ValidateBox验证框
Oct 06 Javascript
JS 实现导航栏悬停效果(续2)
Sep 24 Javascript
调用jQuery滑出效果时闪烁的解决方法
Mar 27 Javascript
vue实现可增删查改的成绩单
Oct 27 Javascript
详解自动生成博客目录案例
Dec 09 Javascript
使用jQuery实现简单的tab框实例
Aug 22 jQuery
js实现搜索栏效果
Nov 16 Javascript
JavaScript实现的级联算法示例【省市二级联动功能】
Dec 25 Javascript
JavaScript使用ul中li标签实现删除效果
Apr 15 Javascript
JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结
Jun 27 Javascript
小程序中手机号识别的示例
Dec 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
为什么《星际争霸》是测试人工智能的理想战场
2019/12/03 星际争霸
PHP语法速查表
2007/01/02 PHP
php 中英文语言转换类
2011/09/07 PHP
ThinkPHP表单自动提交验证实例教程
2014/07/18 PHP
2014年最新推荐的10款 PHP 开发框架
2014/08/01 PHP
php缓冲输出实例分析
2015/01/05 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
2015/09/10 PHP
PHPCMS手机站伪静态设置详细教程
2017/02/06 PHP
Thinkphp5.0 框架Model模型简单用法分析
2019/10/11 PHP
让焦点自动跳转
2006/07/01 Javascript
ASP SQL防注入的方法
2008/12/25 Javascript
js 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome
2009/11/26 Javascript
学习Javascript面向对象编程之封装
2016/02/23 Javascript
js小数计算小数点后显示多位小数的实现方法
2016/05/30 Javascript
全面了解JS中的匿名函数
2016/06/29 Javascript
AngularJS 指令的交互详解及实例代码
2016/09/14 Javascript
javascript 注释代码的几种方法总结
2017/01/04 Javascript
详解JS异步加载的三种方式
2017/03/07 Javascript
angular使用post、get向后台传参的问题实例
2017/05/27 Javascript
通过vue.extend实现消息提示弹框的方法记录
2021/01/07 Vue.js
python函数返回多个值的示例方法
2013/12/04 Python
遗传算法之Python实现代码
2017/10/10 Python
Python2/3中urllib库的一些常见用法
2017/12/19 Python
PyQt5 加载图片和文本文件的实例
2019/06/14 Python
python使用writerows写csv文件产生多余空行的处理方法
2019/08/01 Python
Numpy数组array和矩阵matrix转换方法
2019/08/05 Python
django基础学习之send_mail功能
2019/08/07 Python
Python实现朴素贝叶斯的学习与分类过程解析
2019/08/24 Python
已安装tensorflow-gpu,但keras无法使用GPU加速的解决
2020/02/07 Python
美国帽子俱乐部商店:Hat Club
2019/07/05 全球购物
Javascript如何发送一个Ajax请求
2015/01/26 面试题
哈理工毕业生的求职信
2013/12/22 职场文书
会计学毕业生求职信
2014/06/25 职场文书
群众路线个人整改方案
2014/10/25 职场文书
2015年五四青年节活动总结
2015/02/10 职场文书
研究生个人学年总结
2015/02/14 职场文书