JS
-解决用&
拼接参数传递到后端后变成了两个参数
最近遇到个项目,需要前端传递一个
redirectUrl
参数到后端接口里去,其redirectUrl
参数的参数值由链接url
和邀请码inviteCode
拼接而成,我就用&
拼接的这两个参数,却发现出现bug
:参数传递到后端后变成了两个参数。
一、错误代码:❎
onLogIn = async () => {
const url = 'http://www.baidu.com'; // 链接
const shareCode = '123'; // 邀请码
const redirectUrl = url + '&inviteCode=' + shareCode;
const { data, success } = await API.coop_login({ redirectUrl }); // 请求登录接口,传递参数redirectUrl
if(data && success) {
console.log('登录成功');
}
}
对应结果: 👇🏻
二、正确代码:✅
解决方法:需要通过
encodeURIComponent
对该参数进行加密,不然会被当成多个参数传过去。
onLogIn = async () => {
const url = 'http://www.baidu.com'; // 链接
const shareCode = '123'; // 邀请码
const redirectUrl = encodeURIComponent(url + '&inviteCode=' + shareCode);
const { data, success } = await API.coop_login({ redirectUrl }); // 请求登录接口,传递参数redirectUrl
if(data && success) {
console.log('登录成功');
}
}
对应结果: 👇🏻
一般通过地址栏传参数时遇到有汉字和特殊符号最好加密处理下哦~