angularjs $ http:在路径参数中发送特殊字符

时间:2015-09-26 10:32:18

标签: angularjs angular-http

我正在尝试调用其路径参数中具有特殊字符的REST服务。其余网址看起来像,

rest\fetchDetails\[1,2,3]

我只是使用$ http like,

调用它
$http.get('rest\fetchDetails\[1,2,3]');

它无法正常工作,当我使用firebug进行调试时,我可以看到网址是以

的形式发送的
rest\fetchDetails\%5B1,2,3%5D

在调用$ http调用时有没有办法发送'['和']'?

2 个答案:

答案 0 :(得分:5)

解决方案1:

尝试使用帖子请求并在帖子请求中传递参数。

解决方案2:

'[]'是URL的特殊字符。所以它将被编码。

如果您要解码这是您的服务器代码,您可以这样做。

答案 1 :(得分:0)

您实际上正在发送' ['和']'但是$http.get方法它们是url-encoded。 url编码是必要的,因为HTTP标准只允许一些字符(字母数字加一些)被发送非url编码。

顺便说一句,我假设您的URL中的反斜杠()是常规斜杠(/),否则它们也会被网址编码。