我有一个像https://<domainname>/popup.jsp?sitekey=7-8&type=popup
这样的网址
这样,请求参数字符串(sitekey = 7-8&amp; type = popup)动态形成,然后附加到请求URL,然后提交AJAX请求。
在将请求参数字符串附加到URL之前,我们使用JS的escape()函数。
就像它一样:
var URL=/popup.jsp?;
var reqVal="sitekey=7-8";
reqVal=reqVal+"&type=popup";
URL=URL+escape(reqVal);
因此,URL实际上是以
的形式提交的/popup.jsp?sitekey%3D7-8;amp&type%3Dpopup
在循环访问请求参数名称的servlet中,我得到参数名称为sitekey%3D7-8而不是sitekey,因此当我尝试使用request.getParameter获取sitekey的值时,我的代码会中断(&#34; sitekey& #34)
请帮助解释我如何解码URL,以便我得到的请求参数名称是正确的。
答案 0 :(得分:1)
而不是escape
使用encodeURI
。
在JavaScript 1.5版中弃用了escape()函数。
有什么区别?
escape
- 破坏,弃用,不使用,编码所有字符。
encodeURI
- 对URL中不允许(原始)的字符进行编码(如果您事先无法修复,请使用它来修复损坏的URI)