javascript - 使用“+”号快速解析 queryParams
问题描述
我有一个 Express 服务器,并且在我的路由中配置了:
app.use(express.urlencoded({ extended: false }));
在前端,我使用 Angular 发送请求:
let params = new HttpParams().set('info', info);
if (email) {
params = params.set('email', encodeURIComponent(email));
}
let res;
try {
res = await this.http.get(`/api/users`, { headers: header, params }).toPromise();
return res._embedded.users;
} catch (err) {
return false;
}
我从前端收到一个带有查询参数的 GET 请求,email=jhondoesd%2Btest%40trond.com
我希望在我的路由处理程序中收到,query:{email:"jhondoesd+test@trond.com"}
但我收到query:{email:"jhondoesd%2Btest%40trond.com"}
的是,所以似乎查询参数没有被解码。我需要配置什么?
解决方案
我正在回答我自己的问题,所以也许其他人会觉得这很有用。正如@cbr 所说,这是 Angular 的一个开放问题。我尝试了这篇文章中给出的解决方案,它奏效了。
推荐阅读
- html - 带有溢出自动的 Div 在 Chrome 中不能以选项卡为焦点
- javascript - 如何在图表js中调用barthickness时设置条形之间的间距
- flutter - FutureBuilder 奇怪的行为
- c++ - 在 c++17 或更高版本中在哪里初始化静态 const 成员?
- crash - Erlang:不寻常的case_clause崩溃
- javascript - 如何禁用 href 链接上的“/”预设,以便在单击按钮时不会将完整的外部 URL 添加到站点链接?
- flutter - MDC 102 Flutter Material -- AppBar 未显示
- firebase - 我有一个火力基地开发和生产。如何使用应用目标 firebase.initializeApp 应用程序?
- r - 如何通过使用 dplyr 填充值范围来扩展数据框
- java - 如何在 Java 中将 ApiModelProperty 列表值移到“[”之外