AngularJS $位置搜索困惑

时间:2015-11-04 07:25:15

标签: javascript angularjs angular-ui-router

这是我的网址,参数如下:

http://localhost:8000/search?city=uk&cat=Sightseeing%20&%20Tours

但是当我尝试使用:

捕获cat参数时
var test2 = $location.search().cat;

它只返回Sightseeing。我该如何解决这个问题?谢谢!

1 个答案:

答案 0 :(得分:1)

&符号(&)是URL参数的分隔符。这意味着cat参数在Sightseeing%20之后结束。 (%20可能会自动转换为空格,使其不可见。)

虽然有一个简单的解决方案;只是对符号进行百分比编码;使用%26。请注意,大多数编程语言都提供了一些自动对字符串进行百分比编码的功能,例如在PHP中urlencode()

有关详细信息,请参阅https://en.wikipedia.org/wiki/Percent-encoding。它讨论了URL中的保留字符和未保留字符,这正是导致问题的原因; &符号是保留字符。