我尝试使用以下条件从数据库查询记录: 维生素+锌100毫克/10毫克/5毫升糖浆
我的请求URL如下所示:
http://localhost:4200/api/search?key=VITAMINS%20+%20ZINC%20100MG/10MG%20PER%205ML%20SYRUP
这是我的快速路由器,看起来像:
router.get('/search', (req, res, next) => { const query = req.query; console.log(query.key); .... omitted });
问题是我不能保留 + 特殊字符,因此最终打印出的日志不是路由器中的原始条件。
+
VITAMINS ZINC 100MG/10MG PER 5ML SYRUP
就URI而言, + 角色是 reserved characters .
当保留集中的字符(“保留字符”)具有 特定上下文中的特殊含义(“保留目的”),以及URI Scheme说有必要将这个字符用于其他人 目的,则字符必须进行百分比编码。
在您的情况下,查询字符串需要进行百分比编码,然后才能访问客户端的URL:
编码成分(“维生素+锌”)。
然后在服务器端(即Express)使用 decodeURIComponent() .
decodeURIComponent()