基于微信公众号开发的h5页面,使用jssdk成功分享之后,被分享的页面再次被分享的时候jssdk出错,出现这种错误的一种可能就是,url的错误

假设我们的页面叫做test.html,我们将页面放在test.com域名下面,那么我们去微信后台计算签名的url应该是这样的

http://test.com/test.html

当我们的页面被分享之后,我们页面的页面链接会被微信加上他们自己的信息,url会变成这样

http://test.com/test.html?from=singlemessage&isappinstalled=0

如果这个时候,我们在前端继续用window.location.href去获取url,然后直ajax到后台去签名,签名将是失败的,我们需要把url转化一次

var url=encodeURIComponent(window.location.href)

用转换之后的url,去计算签名,将不会出现错误

w3cencodeURIComponent参考