Я пытаюсь получить длинный и сложный токен из 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 от выполнения этой кодировки.
/
Кто-нибудь знает, что я делаю неправильно
Попробуйте encodeURIComponent
encodeURIComponent
this.route.queryParamMap.subscribe( paramMap => { this.token = encodeURIComponent(paramMap.get('token')); console.log(this.token); });