收藏
回答

URL Link需要二次encode才可以访问?

let url_link = ' https://wxaurl.cn/vhRgPCKpPMa'。//示例url 请替换自己的地址

let extraData = {

authorId: "10771483697545352760",

item: {

guild_id: "13973686903241173896",

}

}

// ❌ 只把 对象转字符串之后再encode字符串

let extraData_Str1 = 'extraData=' + encodeURIComponent(JSON.stringify(extraData))

console.log(extraData_Str1.length, extraData_Str1)

console.log('拼接1-----------', url_link + '?cq=' + extraData_Str1)

//✅  对象转字符串之后再encode字符串,再encode整体,二次encode

let extraData_Str2 = encodeURIComponent('extraData=' + encodeURIComponent(JSON.stringify(extraData)))

console.log(extraData_Str2.length, extraData_Str2)

console.log('拼接2-----------', url_link + '?cq=' + extraData_Str2)

//❌ 分别encode

let extraData_Str3 = encodeURIComponent('extraData=') + encodeURIComponent(JSON.stringify(extraData))

console.log(extraData_Str3.length, extraData_Str3)

console.log('拼接3-----------', url_link + '?cq=' + extraData_Str3)

//❌ 对象转字符串,然后拼接参数,整体encode

let extraData_Str4 = encodeURIComponent('extraData=' + JSON.stringify(extraData))

console.log(extraData_Str4.length, extraData_Str4)

console.log('拼接4-----------', url_link + '?cq=' + extraData_Str4)

// ❌ 整体encode

let extraData_Str5 = encodeURIComponent(url_link + '?cq=extraData=' + JSON.stringify(extraData))

console.log(extraData_Str5.length, extraData_Str5)

console.log('拼接5-----------', extraData_Str5)


// ❓为什么只有第二种方法 微信小程序才能识别?二次encode不是没必要的吗?



回答关注问题邀请回答
收藏

1 个回答

登录 后发表内容