微信+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 相关文章推荐
div层的移动及性能优化
Nov 16 Javascript
JavaScript代码复用模式实例分析
Dec 02 Javascript
jquery 自定义容器下雨效果可将下雨图标改为其他
Apr 23 Javascript
基于jquery的手风琴图片展示效果实现方法
Dec 16 Javascript
JS实现统计复选框选中个数并提示确定与取消的方法
Jul 01 Javascript
javascript实现类似java中getClass()得到对象类名的方法
Jul 27 Javascript
详细分析Javascript中创建对象的四种方式
Aug 17 Javascript
基于easyui checkbox 的一些操作处理方法
Jul 10 Javascript
vue+axios 前端实现登录拦截的两种方式(路由拦截、http拦截)
Oct 24 Javascript
小程序获取当前位置加搜索附近热门小区及商区的方法
Apr 08 Javascript
详解Vue3 Composition API中的提取和重用逻辑
Apr 29 Javascript
Vue3.0中Ref与Reactive的区别示例详析
Jul 07 Vue.js
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常用代码
2006/11/23 PHP
模拟flock实现文件锁定
2007/02/14 PHP
一波PHP中cURL库的常见用法代码示例
2016/05/06 PHP
PHP校验15位和18位身份证号的类封装
2018/11/07 PHP
php无限级分类实现评论及回复功能
2019/02/18 PHP
优化javascript的执行速度
2010/01/23 Javascript
js写一个弹出层并锁屏效果实现代码
2012/12/07 Javascript
js实现简易的单数字随机抽奖(0-9)
2020/03/19 Javascript
jquery常用函数与方法汇总
2015/09/01 Javascript
纯javascript移动优先的幻灯片效果
2015/11/02 Javascript
jquery中cookie用法实例详解(获取,存储,删除等)
2016/01/04 Javascript
解决微信浏览器Javascript无法使用window.location.reload()刷新页面
2016/06/21 Javascript
JavaScript面向对象编写购物车功能
2016/08/19 Javascript
jQuery选择器之子元素选择器详解
2017/09/18 jQuery
fetch 使用及如何接收JS传值
2017/11/11 Javascript
详解Node 定时器
2018/02/26 Javascript
手写Node静态资源服务器的实现方法
2018/03/20 Javascript
Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】
2019/11/04 Javascript
JavaScript中this函数使用实例解析
2020/02/21 Javascript
微信小程序实现简单的select下拉框
2020/11/23 Javascript
[00:43]TI7不朽珍藏III——幽鬼不朽展示
2017/07/15 DOTA
python将控制台输出保存至文件的方法
2019/01/07 Python
wxPython绘图模块wxPyPlot实现数据可视化
2019/11/19 Python
PyCharm 在Windows的有用快捷键详解
2020/04/07 Python
Python内置函数locals和globals对比
2020/04/28 Python
通过实例解析python创建进程常用方法
2020/06/19 Python
python利用pytesseract 实现本地识别图片文字
2020/12/14 Python
采用专利算法搜索最廉价的机票:CheapAir
2016/09/10 全球购物
数字漫画:comiXology
2020/06/13 全球购物
简短的公司员工自我评价分享
2013/11/13 职场文书
应聘会计求职信
2014/06/11 职场文书
高三教师工作总结2015
2015/07/21 职场文书
2015年评职称个人工作总结
2015/10/15 职场文书
初二物理教学反思
2016/02/19 职场文书
vue中的可拖拽宽度div的实现示例
2022/04/08 Vue.js
python的html标准库
2022/04/29 Python