查询参数中的编码斜杠(%2F)导致Angular Application中的重定向失败

时间:2018-06-12 23:42:40

标签: angularjs tomcat7 url-redirection urlencode

在我的角度应用程序中,我需要对Tomcat服务器进行GET调用。此GET调用需要查询参数,这些参数可能包含特殊字符,例如" +"," /"," / +" 正在使用$ window.open和目标为#34; _blank"

的角度控制器进行GET调用

目前,重定向在没有任何编码的情况下失败。

因此,我在使用encodeURIComponent进行GET调用之前在.js文件中添加了编码。

然后我在后端java代码中使用URLDecode.decode添加了解码逻辑来解码查询参数。

但它仍然没有用。

只有在使用encodeURIComponent两次在.js文件中对查询参数进行两次编码时,它才有效。

我试图找到双重编码的根本原因,但还没有运气。如果有人可以分享任何意见,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

通过在app.js的path参数中添加*使其工作。添加星号意味着请求将包含多个由/分隔的路径参数,因此angular将不会尝试在请求中对/进行编码。
双重编码也可以工作,但是随后必须修改服务器端逻辑以对请求参数进行两次解码,并将%2B2F替换为%2F