2016-07-07 3 views
1

Я только что обновился до нового маршрутизатора с RC2. Один из моих компонентов имеет путь:Угловые 2 пути RC3 + пути маршрутизатора со специальными символами

/login/:email/:token 

Теперь, когда я ввожу URL как /login/[email protected]/myToken этот компонент не подобран. Я понял, что это имеет какое-то отношение к специальным символам @ и . в моем адресе электронной почты. Я бросаю их, это работает.

С JavaScripts encodeUriComponent() перекодировать (и затем декодировать в компоненте) по электронной почте, но это только делает его для @, не . Так что до сих пор не работает.

Почему это происходит, и как я могу пропустить мою электронную почту на этот путь?

ответ

2

Есть некоторые критические изменения в rc.4:

Http: Изменения в URLSearchParams Http в сериализации в настоящее время предотвратить кодирование этих символов в параметрах запроса, которые были ранее преобразованы к процентной кодировке значений @: $,; +; ?/

По умолчанию кодирование может быть отменено путем расширения QueryEncoder, как описано в службе URLSearchParams.

https://github.com/angular/angular/blob/master/CHANGELOG.md

И эти символы также не кодируется перед rc.4:

Это символы, которые не кодируются: $ \ '() * +,; A 9 -. _ ~?/

https://angular.io/docs/ts/latest/api/http/index/URLSearchParams-class.html

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