【问题标题】:Nestjs accepting also application/x-www-form-urlencodedNestjs 也接受 application/x-www-form-urlencoded
【发布时间】:2021-02-09 16:30:11
【问题描述】:

我们有一个服务正在调用我们的 nestjs 微服务,其标头 Content-Type: application/x-www-form-urlencoded 似乎没有按预期解析。

如果我们也从一个干净的 nestjs 项目开始,并将这段代码放在 AppController

  @Post()
  async store(@Body() request: any) {
    console.log('request', request);
  }

如果我们这样用 curl 向服务发送数据:

curl -d '{"abc": 123 }' -H 'Content-Type: application/x-www-form-urlencoded' -X POST http://localhost:3000

最后我们的console.log显示我们没有有效的json,body的全部内容都放在了请求json的第一个参数中,导致了这个

request { '{"abc": 123 }': '' }

正如您所看到的,内容没有被正确解析为 json,文档没有显示很多解析器,但是谷歌搜索这应该可以解决问题

有人可以帮忙吗?

【问题讨论】:

    标签: json nestjs x-www-form-urlencoded


    【解决方案1】:

    两个帖子

    • URL 编码数据并声称它是 URL 编码数据
    • JSON 编码数据并声称它是 JSON 编码数据

    您发布 JSON 并声称它是 URL 编码的,这没有意义。

    【讨论】:

    • 我们必须以正确的方式编写它,这意味着 -d 'abc=123',我们认为放置标题会将数据从 json 转换为 url 编码 ... t so 而且这可能没有意义,如果背景中的 curl 正在做一些你可能也不会做的事情
    猜你喜欢
    • 2012-08-06
    • 1970-01-01
    • 2017-09-11
    • 2018-12-27
    • 1970-01-01
    • 2014-03-30
    • 1970-01-01
    • 2019-05-04
    • 2019-02-04
    相关资源
    最近更新 更多