首页 > 解决方案 > 使用 SafeUrlAssembler 时,%40 不断更改为 %2540

问题描述

我在 Angular 5 中使用 safe-url-assembler。

我将一个电子邮件地址传递给这个调用 API 的汇编程序。

const endpoint = SafeUrlAssembler(environment.baseUrl.api)
  .template(ApiEndpoints.save)
  .param("emailID", email)
  .toString();
console.log(endpoint);
return this.http.put<any>(endpoint, httpOptions);

问题是,当我将电子邮件传递到 URL 时,它会显示为“myemail%2540gmail.com”而不是“myemail%40gmail.com”

有人在使用安全 url 汇编器时解决了这个问题吗?

标签: angulartypescript

解决方案


SafeUrlAssembler 不知道该字符串已被“保护”。因此,已经转义的 '@' ('%40') 被读取为要发送的字符串。由于 '%' 不安全,它被转义到 '%25'。

不要传入已经转义的电子邮件地址(“myemail%40gmail.com”),而是使用“@”传入常规电子邮件地址。(“myemail@gmail.com”)


推荐阅读