【问题标题】:Angular 9 how to stop query param encodingAngular 9如何停止查询参数编码
【发布时间】:2020-04-10 05:22:50
【问题描述】:

我正在尝试从我的 Angular 应用程序中的 url 检索一个长而复杂的令牌。

示例 url 可能如下所示(注意 id 和 token 参数):

https://localhost:5001/reset?id=e77d8ba0-860e-41ef-9b22-2faa5eb9bcac&token=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 

      });

它似乎在自动编码特殊字符(例如将%2F 变成/)。我查看了 Angular.io 文档并搜索了类似的情况,但我就是不知道如何阻止 Angular 进行这种编码。

有谁知道我做错了什么?

【问题讨论】:

    标签: javascript angular typescript special-characters query-parameters


    【解决方案1】:

    试试encodeURIComponent

    this.route.queryParamMap.subscribe(
      paramMap => {
    
        this.token = encodeURIComponent(paramMap.get('token'));
    
        console.log(this.token);
    
      });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-15
      • 1970-01-01
      • 1970-01-01
      • 2010-10-08
      • 2020-09-21
      • 1970-01-01
      • 2011-09-06
      • 2023-02-11
      相关资源
      最近更新 更多