写在前面:
最近在项目中,遇到一个问题,在点击一个超链接时,页面报错。通过浏览器调试就可以知道发送的请求参数是不完整的,因为参数中含有特殊字符。所以就报错啦~~
原代码,不能正确发送含有特殊字符的参数:
其中k_projectname中是含有特殊字符的,比如#,在发送请求的时候就不能被识别,需要对其进行转义。
修改后的代码:
/*超链接请求特殊字符转换*/
functionformatSpecial(mapping_id,k_projectname,projectcode){//alert(k_projectname);
var str = k_projectname.replace(/\"/g,'%22').replace(/\#/g,'%23').replace(/\'/g,'%27').replace(/\?/g,'%3F').replace(/\&/g,'%26').replace(/\=/g,'%3D');//alert(str2);
location.href = "/kmsDisplayModifyMappingAction.do?mapping_id="+mapping_id+"&k_projectname="+str+"&projectcode="+projectcode+"";
}
modify
主要思路是在点击超链接之前,对需要传递的参数在js函数中进行转义处理,将含有的特殊字符用replace()方法进行转义替换,在处理完成之后,再发送请求就好啦~~~~~
其中/\"/g的意思是/pattern/,代表的是正则表达式的界定符号,\表示转义,\"表示",g表示匹配所有的,不写的话只回匹配替换第一个。
交流群:527038646 嘻嘻嘻