get传值非法字符问题的解决

本文介绍了在前端开发中遇到的JSON数组转换为String时出现非法字符的问题,以及如何通过encodeURIComponent方法解决。同时,针对URL参数传递进行了条件判断优化,避免空值导致的错误。这种方法确保了后台接收参数的正确性。
摘要由CSDN通过智能技术生成

例如:


----我这里是因为下拉框多选的数组,需要转化一下成String类型
var vm = this;
var SettlementCycle = JSON.stringify(vm.SearchObj.sSettlementCycle);
var ContractIndate = JSON.stringify(vm.SearchObj.sContractIndate);
var ContractNum = JSON.stringify(vm.SearchObj.sContractNum);

let url = "/CapitalJewellery/CompanyListDowmExcel";
let openurl = url +
    "?SearchStr=" + this.SearchObj.sSearch +
    "&Invoice=" + this.SearchObj.sInvoice +
    "&CooperationStatus=" + this.SearchObj.sCooperationStatus
"";



----需要注意原本无值的情况,防止报错
if (!CapitalChkNull(vm.SearchObj.sSettlementCycle)) {
    openurl = openurl + "&SettlementCycle=" + encodeURIComponent(SettlementCycle);
}
else {
    openurl = openurl + "&SettlementCycle=" + this.SearchObj.sSettlementCycle;
}
if (!CapitalChkNull(vm.SearchObj.sContractIndate)) {
    openurl = openurl + "&ContractIndate=" + encodeURIComponent(ContractIndate);
}
else {
    openurl = openurl + "&ContractIndate=" + this.SearchObj.sContractIndate;
}
if (!CapitalChkNull(vm.SearchObj.sContractNum)) {
    openurl = openurl + "&ContractNum=" + encodeURIComponent(ContractNum)+"";
}
else {
    openurl = openurl + "&ContractNum=" + this.SearchObj.sContractNum + "";
}
window.open(openurl);

我原本存在的问题是传值是“[5,6,7,8]”,存在非法字符问题

解决方法:

encodeURIComponent()

将非法字符直接转义,后台接到的值无影响

需要注意的点:

当值为空时转义,会进行报错,所以适时进行if判断防止报错

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小先生812

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值