javascript - 查询参数包括#, Javascript (Node) 错误输出
问题描述
为了简单起见,我正在使用 Firebase Cloud Functions,当/如果我收到包含 # 的参数时,它无法识别它。
例如:http://example.net?id=123#456
。如果我登录id
,我只会得到 123。
但是,如果我做类似的事情http://example.net?id=123456
,一切都会被记录下来。
如何在字符串值中包含 # 符号id
?
更好的细节:
网址:http ://example.com?item=2019+#157&typeOfListing=sold
如果我对请求查询进行编码
let item = encodeURIComponent(req.query.item);
我会得到以下信息:
2019%20
它不带#。
解决方案
这是因为#
是 url 中的一个特殊字符(就像/
, :
, ?
, ... are),它用于表示 url 的片段部分。您需要encodeURIComponent
像这样使用它来逃避它:
let idParam = encodeURIComponent("123#456");
let url = "http://example.net?id=" + idParam;
推荐阅读
- amazon-web-services - How to add an index to an RDS database/table after AWS Glue script imports the data therein?
- javascript - 我正在使用 fixer api 开发货币转换器 webapp
- reactjs - 如何使用 Typescript 从 mui 扩展调色板
- c# - SSIS 脚本任务获取“调用的目标已引发异常”。使用 3rd 方 dll 运行时
- c# - 应该如何在 ASP NET Core MVC 中检索数据?
- git - 从“git branch -va”中删除远程分支
- java - EclipseLink:在存在的字节字段上使用 NotNull 生成的不可编译元模型类
- python - 插入多个绑定变量时出现 Python 和雪花错误
- .net - (VB.Net) 数据绑定时,DataGridView 中不显示 BaseClass 属性
- sql - 如何使用 Sql server 中另一个表中的值的条件更新表中的值