请求(Request)的参数(Parameter)里包含特殊字符(#等)的正确处理方式
请求(Request)的参数(Parameter)里包含特殊字符(#等)的正确处理方式
DakeZhang 发表于3个月前
请求(Request)的参数(Parameter)里包含特殊字符(#等)的正确处理方式
  • 发表于 3个月前
  • 阅读 0
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

遇到的问题: 在一个地址链接(URL)里使用 url?param1=val1&param2=val2 的方式传递参数,结果在获取参数值时发现不是当初设定的值。

JS里设置参数

** window.location="some_web_project/xxx.jsp?param_key=abc#xyz";**

Java中取参数值

   ** Sting paramVal = request.getParameter("param_key");**

你会发现在 Java 中取到的值,不是设定的 abc#xyz ,而是 abc 。井号后面的值没了,包括井号本身。 因为URL中的井号(#)有其特殊的含义,表示位置(锚点)。 先给参数值编码,再传递即可。 将上面的JS代码改为:

**1 var param_val = encodeURIComponent("abc#xyz");**                                                       
**2 window.location="some_web_project/xxx.jsp?param_key=" + param_val;**
共有 人打赏支持
粉丝 0
博文 7
码字总数 825
×
DakeZhang
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: