例如:
----我这里是因为下拉框多选的数组,需要转化一下成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判断防止报错