在servlet中读取整个编码的URI

时间:2015-12-02 07:36:23

标签: javascript

我有一个像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,以便我得到的请求参数名称是正确的。

1 个答案:

答案 0 :(得分:1)

而不是escape使用encodeURI

在JavaScript 1.5版中弃用了escape()函数。

有什么区别?

escape - 破坏,弃用,不使用,编码所有字符。

encodeURI - 对URL中不允许(原始)的字符进行编码(如果您事先无法修复,请使用它来修复损坏的URI)