angularjs $http : 在路径参数中发送特殊字符
angularjs $http : sending special characters in path param
我正在尝试调用在其路径参数中具有特殊字符的 REST 服务。其余的url看起来像,
rest\fetchDetails\[1,2,3]
我只是像使用 $http 一样调用它,
$http.get('rest\fetchDetails\[1,2,3]');
它不工作,当我使用 firebug 调试它时,我可以看到 url 作为
发送
rest\fetchDetails\%5B1,2,3%5D
有什么方法可以在调用 $http 调用时发送“[”和“]”吗?
解决方案一:
尝试使用 post 请求并在 Post 请求中传递参数。
方案二:
'[]' 是 URL 的特殊字符。所以它会被编码。
如果你想解码这是你的服务器代码,你可以做到。
您实际上是在发送“[”和“]”,但它们是通过 $http.get
方法 url-encoded 发送的。 url 编码是必要的,因为 HTTP 标准只允许发送非 url 编码的某些字符(字母数字加一些)。
顺便说一句,我假设您 URL 中的反斜杠 () 是正斜杠 (/),否则它们也会被 url 编码。
我正在尝试调用在其路径参数中具有特殊字符的 REST 服务。其余的url看起来像,
rest\fetchDetails\[1,2,3]
我只是像使用 $http 一样调用它,
$http.get('rest\fetchDetails\[1,2,3]');
它不工作,当我使用 firebug 调试它时,我可以看到 url 作为
发送rest\fetchDetails\%5B1,2,3%5D
有什么方法可以在调用 $http 调用时发送“[”和“]”吗?
解决方案一:
尝试使用 post 请求并在 Post 请求中传递参数。
方案二:
'[]' 是 URL 的特殊字符。所以它会被编码。
如果你想解码这是你的服务器代码,你可以做到。
您实际上是在发送“[”和“]”,但它们是通过 $http.get
方法 url-encoded 发送的。 url 编码是必要的,因为 HTTP 标准只允许发送非 url 编码的某些字符(字母数字加一些)。
顺便说一句,我假设您 URL 中的反斜杠 () 是正斜杠 (/),否则它们也会被 url 编码。