2015-11-04 2 views
2

Это мой URL с PARAMS выглядеть следующим образом:

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

Но когда я пытаюсь захватить cat Params с помощью:

var test2 = $location.search().cat; 

это только вернуть Sightseeing. Как я могу решить эти проблемы? Благодаря!!

+0

Что вы ожидаете от кошки? 'Достопримечательности и туры'? – 11684

+0

Кажется, что угловое использование regexp, когда оно пытается найти что-то в url. Можете ли вы попробовать использовать $ location.search ('cat')? – Errorpro

+0

@ 11684 yup, точно – d3bug3r

ответ

1

Амперсанд (&) является разделителем параметров URL. Это означает, что параметр cat заканчивается после Sightseeing%20. (%20, вероятно, автоматически преобразуется в пространство, делая его невидимым.)

Существует простое решение; просто процентное кодирование амперсанда; использование %26. Обратите внимание, что большинство языков программирования предоставляют некоторую функцию для автоматического кодирования строк в процентах, в PHP, например, это будет urlencode().

Для получения дополнительной информации см. https://en.wikipedia.org/wiki/Percent-encoding. В нем говорится о зарезервированных и безоговорочных символах в URL-адресах, что именно то, что вызывает вашу проблему; амперсанд является зарезервированным персонажем.

Смежные вопросы