为什么快递转换&到&%3B,我该如何处理?

时间:2018-03-23 17:26:50

标签: node.js express

我在NodeJS上运行Express,我收到类似https://myserver.com/processCampaign?id=12345679&campaignId=123456的请求。

Express将其转换为id=12345679&amp%3BcampaignId=123456。所以现在我无法获得campaignId,因为我在查询字符串中得到了'amp;campaignId':'123456'

所以我想知道,我在Express中遇到了什么问题,或者我应该以不同的方式处理它?<​​/ p>

2 个答案:

答案 0 :(得分:0)

在快递中,多个查询与&#39;&amp;&#39;分开。你不需要使用&#39; amp;&#39;在下一个查询字符串之前。在您的情况下,下面的网址将为您提供id和campaignId查询。

 https://myserver.com/processCampaign?id=12345679&campaignId=123456

如果您现在记录req.query,您将获得

 { id: '12345679', 'campaignId': '123456' } 

答案 1 :(得分:0)

因为我无法控制入站请求(这是不正确的),所以我别无选择,只能在我这边处理它。我已经读过入站URI很可能是不正确的,因为它们正在进行双重编码。

以下是我提出的解决方案:

JSON.parse(JSON.stringify(req.query).replace('amp;campaignId', 'campaignId'))

如果有人有更好的想法,我会接受其他解决方案。