Bra*_*rad 10 node.js express decodeuricomponent
使用Express的URL参数功能时,似乎会自动解码参数.也就是说,百分比编码实体被解析为其正常形式. %20用空格代替.
但是,加号+不会替换为空格.这可能是因为Express在decodeURIComponent()内部使用,也没有+用空格替换加号.简单示例代码:
app.get('/:sourceFile', function (req, res, next) {
console.log(req.params.sourceFile);
});
Run Code Online (Sandbox Code Playgroud)
如果您要求/test%20test,那么您将test test进入控制台.如果您要求/test+test,那么您将test+test进入控制台.
有没有办法在Express 4中改变这种操作模式?这是一个错误吗?
您尝试使用 + 来表示请求的“URI 部分”中的空格。你不能那样做。加号仅在查询字符串中转换为空格。
这不是一个错误。在 URI 规范(第 12/13 页https://www.rfc-editor.org/rfc/rfc3986)中,加号是保留字符,不能翻译为空格。
| 归档时间: |
|
| 查看次数: |
4283 次 |
| 最近记录: |