Heim >Backend-Entwicklung >PHP-Tutorial >javascript - 微信JS-SDK使用权限签名算法的疑问
被签名的字符串为:
<code>jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg&noncestr=Wm3WZYTPz0wzccnW×tamp=1414587457&url=http://mp.weixin.qq.com?params=value </code>
其中url的内容多了“/”,如:url=http://mp.weixin.qq.com?params=value(无“/”)
url=http://mp.weixin.qq.com/?params=value(有“/”)
就会导致“invalid url domain”错误,为什么?
被签名的字符串为:
<code>jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg&noncestr=Wm3WZYTPz0wzccnW×tamp=1414587457&url=http://mp.weixin.qq.com?params=value </code>
其中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,导致参数传递不完整。