javascript - Angular 9如何停止查询参数编码
问题描述
我正在尝试从我的 Angular 应用程序中的 url 检索一个长而复杂的令牌。
示例 url 可能如下所示(注意 id 和 token 参数):
虽然我可以使用查询参数映射来检索我的值,但 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
});
它似乎是自动编码特殊字符(比如把 a%2F
变成 a /
)。我查看了 Angular.io 文档并搜索了类似的情况,但我就是不知道如何阻止 Angular 进行这种编码。
有谁知道我做错了什么?
解决方案
尝试encodeURIComponent
this.route.queryParamMap.subscribe(
paramMap => {
this.token = encodeURIComponent(paramMap.get('token'));
console.log(this.token);
});
推荐阅读
- flutter - 如何使用 dart null-safety 对可能包含空值的列表进行排序
- angular - Angular rxjs Subject,组件没有收到Subject发送的数据
- opencv - 我的 OpenCV 4.2.0 源代码中的 CMAKE 找不到我的机器中安装的任何 cuDNN
- logging - 已解决:如何在运行时重新路由 Arduino/ESP 串行输出?
- loops - 如何降低嵌套循环算法的时间复杂度?我的示例伪代码附在下面
- c# - 如何获取 Virtualize 组件子项的元素引用?
- excel - 在 Excel 的数据透视表中添加计算项目会在行中对我的字段进行交叉乘积
- python - 为 seaborn 子图创建 forloop 的问题
- angular - 使用 Angular 获取 firebase 对象
- pandas - 在 pandas groupby 中查找过去 30 天和 60 天的 Quantity 平均值