Angular 9 как остановить кодирование параметров запроса - PullRequest
1 голос
/ 10 апреля 2020

Я пытаюсь получить длинный и сложный токен из URL в моем приложении Angular.

Пример URL может выглядеть следующим образом (обратите внимание на параметры id и token):

https://localhost: 5001 / сброс ID = e77d8ba0-860e-41ef-9b22-2faa5eb9bcac & маркер = CfDJ8O1GI7keU8xGn9z9kiO90U9OTQLSPVN0JS00bsu% 2FrMuTyaNYuls37zECb0RQk1oHJHJtuWlyFf2K% 20ExY% 2FWQ9xKUKWkxWQADFDw8fPIc4z% 206y55yaIsljI0MPQZOR8BYggN7rQb1e891y3yIiQQJI0kjsvTLcO1NUpH2tt679sdB45x2p1zYPjoRU6ddlMKcxmx6Q538RTB99gek% 20YNgiCH73h2pRRWewlcPRfS80G4Ya `

Хотя я могу использовать карту параметров запроса для получения своих значений, Angular, похоже, играет с данными: /

    this.route.queryParamMap.subscribe(
      paramMap => {

        this.token = paramMap.get('token');

        console.log(document.location);
        // ...CfDJ8O1GI7keU8xGn9z9kiO90U9OTQLSPVN0JS00bsu%2FrMuTyaNYuls37zECb0RQk1oHJHJtuWlyFf2K ExY%2FWQ9xKUKWkxWQADFDw8fPIc4z 6y55yaIsljI0MPQZOR8BYggN7rQb1e891y3yIiQQJI0kjsvTLcO1NUpH2tt679sdB45x2p1zYPjoRU6ddlMKcxmx6Q538RTB99gek YNgiCH73h2pRRWewlcPRfS80G4Ya

        console.log(this.token);
        // CfDJ8O1GI7keU8xGn9z9kiO90U9OTQLSPVN0JS00bsu/rMuTyaNYuls37zECb0RQk1oHJHJtuWlyFf2K ExY/WQ9xKUKWkxWQADFDw8fPIc4z 6y55yaIsljI0MPQZOR8BYggN7rQb1e891y3yIiQQJI0kjsvTLcO1NUpH2tt679sdB45x2p1zYPjoRU6ddlMKcxmx6Q538RTB99gek YNgiCH73h2pRRWewlcPRfS80G4Ya 

      });

Кажется, что оно автоматически кодирует специальные символы (например, поворот *) 1015 * в /). Я посмотрел на Angular .io документы и искал похожие ситуации, но я просто не могу понять, как остановить Angular от выполнения этой кодировки.

Кто-нибудь знает, что я делаю неправильно

1 Ответ

2 голосов
/ 10 апреля 2020

Попробуйте encodeURIComponent

this.route.queryParamMap.subscribe(
  paramMap => {

    this.token = encodeURIComponent(paramMap.get('token'));

    console.log(this.token);

  });
...