javascript - 微信JS-SDK使用权限签名算法的疑问
程序员文章站
2022-06-16 07:58:00
...
被签名的字符串为:
jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg&noncestr=Wm3WZYTPz0wzccnW×tamp=1414587457&url=http://mp.weixin.qq.com?params=value
其中url的内容多了“/”,如:url=http://mp.weixin.qq.com?params=value(无“/”)
url=http://mp.weixin.qq.com/?params=value(有“/”)
就会导致“invalid url domain”错误,为什么?
回复内容:
被签名的字符串为:
jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg&noncestr=Wm3WZYTPz0wzccnW×tamp=1414587457&url=http://mp.weixin.qq.com?params=value
其中url的内容多了“/”,如:url=http://mp.weixin.qq.com?params=value(无“/”)
url=http://mp.weixin.qq.com/?params=value(有“/”)
就会导致“invalid url domain”错误,为什么?
有人遇到这个问题没?
'/'会导致你传的url中的参数不完整,sdk接收到的url和你实际的url不匹配,当然就会invalid domain了。
这个和你前端把url提交到接口上的方法有关系,简单的说就是url encode一下就可以避免了。有的库比如jQuery或者Zepto可能把encode这一步在ajax中封装了,如果你写的是原生的ajax,可能就漏掉了encode,导致参数传递不完整。