微信+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 相关文章推荐
javascript中比较字符串是否相等的方法
Jul 23 Javascript
node.js中的fs.realpathSync方法使用说明
Dec 16 Javascript
原生javascript实现自动更新的时间日期
Feb 12 Javascript
javascript代码调试之console.log 用法图文详解
Sep 30 Javascript
Vue.js表单控件实践
Oct 27 Javascript
详解JavaScript中的属性和特性
Dec 08 Javascript
详解webpack进阶之插件篇
Jul 06 Javascript
Parcel 打包示例(React HelloWorld)
Jan 16 Javascript
vue router 通过路由来实现切换头部标题功能
Apr 24 Javascript
Vue 2.0 中依赖注入 provide/inject组合实战
Jun 20 Javascript
Node.js从字符串生成文件流的实现方法
Aug 18 Javascript
使用JavaScript和MQTT开发物联网应用示例解析
Aug 07 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中文字符截取防乱码
2008/03/28 PHP
PHP中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节
2010/07/09 PHP
php类自动加载器实现方法
2015/07/28 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
PHP判断是否是微信打开,浏览器打开的方法
2018/03/14 PHP
理解Javascript_07_理解instanceof实现原理
2010/10/15 Javascript
jquery struts 验证唯一标识(公用方法)
2013/03/27 Javascript
查找iframe里元素的方法可传参
2013/09/11 Javascript
javascript实现日期格式转换
2014/12/16 Javascript
JavaScript中实现map功能代码分享
2015/06/11 Javascript
JS简单限制textarea内输入字符数量的方法
2015/10/14 Javascript
jQuery中ScrollTo用法示例
2016/09/04 Javascript
Vue.js组件使用开发实例教程
2016/11/01 Javascript
jquery获取input type=text中的值的各种方式(总结)
2016/12/02 Javascript
BootStrap 下拉菜单点击之后不会出现下拉菜单(下拉菜单不弹出)的解决方案
2016/12/14 Javascript
AngularJS constant和value区别详解
2017/02/28 Javascript
javascript实现文件拖拽事件
2018/03/29 Javascript
自定义vue组件发布到npm的方法
2018/05/09 Javascript
vue项目持久化存储数据的实现代码
2018/10/01 Javascript
vue-cli 3.0 版本与3.0以下版本在搭建项目时的区别详解
2018/12/11 Javascript
Vue.extend实现挂载到实例上的方法
2019/05/01 Javascript
VUE 直接通过JS 修改html对象的值导致没有更新到数据中解决方法分析
2019/12/02 Javascript
JS实现简易图片自动轮播
2020/10/16 Javascript
JavaScript实现跟随鼠标移动的盒子
2021/01/28 Javascript
[02:08]DOTA2英雄基础教程 马格纳斯
2014/01/17 DOTA
[01:06:43]完美世界DOTA2联赛PWL S3 PXG vs GXR 第二场 12.19
2020/12/24 DOTA
pygame游戏之旅 游戏中添加显示文字
2018/11/20 Python
Python将视频或者动态图gif逐帧保存为图片的方法
2019/09/10 Python
DC Shoes荷兰官方网站:美国极限运动品牌
2019/10/22 全球购物
jQuery treeview树形结构应用
2021/03/24 jQuery
电大物流学生的自我评价
2013/10/25 职场文书
志愿者活动总结报告
2014/06/27 职场文书
专题组织生活会发言材料
2014/10/17 职场文书
党员贯彻十八大精神思想汇报范文
2014/10/25 职场文书
实施意见格式范本
2015/06/05 职场文书
街道办残联2016年助残日活动总结
2016/04/01 职场文书