在我的角度应用程序中,我需要对Tomcat服务器进行GET调用。此GET调用需要查询参数,这些参数可能包含特殊字符,例如" +"," /"," / +" 正在使用$ window.open和目标为#34; _blank"
的角度控制器进行GET调用目前,重定向在没有任何编码的情况下失败。
因此,我在使用encodeURIComponent进行GET调用之前在.js文件中添加了编码。
然后我在后端java代码中使用URLDecode.decode添加了解码逻辑来解码查询参数。
但它仍然没有用。
只有在使用encodeURIComponent两次在.js文件中对查询参数进行两次编码时,它才有效。
我试图找到双重编码的根本原因,但还没有运气。如果有人可以分享任何意见,我将不胜感激。
答案 0 :(得分:0)
通过在app.js的path参数中添加*
使其工作。添加星号意味着请求将包含多个由/
分隔的路径参数,因此angular将不会尝试在请求中对/
进行编码。
双重编码也可以工作,但是随后必须修改服务器端逻辑以对请求参数进行两次解码,并将%2B2F
替换为%2F