1.项目是采用vue开发,使用hash模式,所以URL带有#
部署到服务器,微信开发者工具调试,输入url
提示response_type配置错误
原因:#对于微信来说具有特殊意义,内部应该做了什么处理,导致url#后面的参数丢失了,所以就会提示esponse_type配置错误,本质上就是#导致这个字段丢失了
2.hash模式不修改的情况下
不要使用
onLoad(e){
let code = e.code;//公众号不能使用这个获取code
}
原因:微信经过处理后的最终的URL:
http://localhost:8080/?code=0541sdhjkgjjqfsd014&state=#/
跟我们自身期待的#号位置不一样,vue是通过识别url中#号做参数解析的
http://localhost:5173/#/?code=014sdhjdhhgtqnfdsfgh011
所以code一直获取不到,因为code在#的前面
3.解决,只能使用js方法获取
以下代码转载:微信公众号网页授权--前端获取code及用户信息(vue)【简单详细版】_vue前端获取code-CSDN博客
export const getUrlCode = () => { // 截取url中的code方法
var url = location.search
var theRequest = new Object()
if (url.indexOf("?") != -1) {
var str = url.substr(1)
var strs = str.split("&")
for (var i = 0; i < strs.length; i++) {
theRequest[strs[i].split("=")[0]] = (strs[i].split("=")[1])
}
}
return theRequest
}