url乱码

1.url内有特殊字符

(例如将list转为json串进行传送)
需要在传值之前编码一次 将特殊字符进行转换,在第二个jsp中接收到的即为正常内容。

第一个jsp:

if(airportId != null && activityId!=null){
		var jsonArray = JSON.stringify(pointFormList);	//将对象、数组转换成字符串
		var url = "birdActivityPointsMap.jsp?airportId="+ airportId+"&jsonArray="+jsonArray;
		/*url中的json串有特殊字符 需要先编码转义,否则报错Invalid character found in the request target.The valid characters are defined in RFC 7230 and RFC3986	*/
		window.location.href = encodeURI(url);
	//	Kelp.url(url);
}

function getUrlValue(name)
{//获取URL中参数
	var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
    var r = window.location.search.substr(1).match(reg);
	if(r!=null)return  unescape(r[2]); return null;
}

第二个jsp:

var jsonArray = getUrlValue("jsonArray");
pointList =  JSON.parse(jsonArray);	 //将字符串转成json对象
if(pointList!=null && pointList.length>0){
	for(let i in pointList){   //let
		...........
	}
}

2.url传中文乱码

需要注意的是,在使用encodeURI转码后,会出现特殊字符,这时候,就需要将特殊字符也转码,所以使用两次encodeURI,即:encodeURI(encodeURI(“xxxx”))。

第一个jsp:

	url = url+"&airportName="+encodeURI(airportName); //airportName中的中文出现乱码,需要进行编码
	url=encodeURI(url);	//第二次编码
	window.location.href = url;

第二个jsp:

	airportName = getUrlValue("airportName");
	airportName = decodeURI(airportName); //一次解码得到中文
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值