前两天,遇到一个问题,通过js window.laction.href="*.do?param=param"
的形式,往后台传值的时候,因为url带有特殊字符,所以后台拿到的值与前台
传递的值不同,已经证明:但是如果通过form.submit()的方法提交,是不会出现
这个问题的。
解决方法,是写了一个方法,手动将特殊字符替换掉
function getEncodeURI(content) { content = encodeURI(content);//已把%号转为%25 //content = content.replace(/\%/g, "%25"); content = content.replace(/\+/g, "%2B"); content = content.replace(/\ /g, "%20"); content = content.replace(/\//g, "%2F"); content = content.replace(/\#/g, "%23"); content = content.replace(/\&/g, "%26"); content = content.replace(/\=/g, "%3D"); content = content.replace(/\?/g, "%3F"); return content; }
然后,再传值之前,参数先通过getEncodeURI(content)方法处理一下。
原因呢 ? 还在深究中