【问题标题】:How do I send my request body as text using $http.post?如何使用 $http.post 将请求正文作为文本发送?
【发布时间】:2016-10-28 23:55:13
【问题描述】:

同样使用 npm 的 body-parser,我该如何发送数据

$http.post('/',data)

这样当我收到它时

app.route('/').post(function(req,res){
  var body_better_be_a_string = typeof req.body;
})

req.body 应该是字符串类型。试过但req.body总是返回为[object Object],需要req.body是一个字符串。

【问题讨论】:

    标签: javascript angularjs express post body-parser


    【解决方案1】:

    JSON.stringify(req.body); 会给你一个字符串 我猜测 req.body 是一个 json 对象,当[object Object] 出现时,您正在尝试查看它。如果你使用 JSON.stringify 它将被解析为字符串

    【讨论】:

    • 当我这样做时.. console.log('JSON.stringify(req.body) : ' + JSON.stringify(req.body));我在控制台中得到了这个... JSON.stringify(req.body) : {} 所以我将对象符号括号作为字符串返回,而不是 JSON.ody)))
    【解决方案2】:

    Express 文档指定在 req.body 中发送的数据是键值对列表,因此,例如,如果您发送“application/json”,您可以使用 JSON.stringify(req.body) 来确保它是用于进一步操作的字符串类型:http://expressjs.com/en/api.html#req.body

    此外,如果您更新问题并说明“为什么”需要它是一个字符串,这可能会有所帮助。您是否正在尝试实施一些无效的操作?

    此外,您可以包含使用正文解析器的 Node 脚本的其他部分,因为这些部分可能与答案相关。

    【讨论】:

    • JSON.stringify(req.body) 给我这个值:{}。因此,它给了我作为字符串的对象表示法,而不是 JSON 的字符串表示。我还注释掉了我的正文解析器,但我仍然得到一个对象作为我的 req.body。
    • 您能否更新 Angular 代码块以显示您在发布请求中发送的数据变量的实际内容。
    • 我决定将我的请求正文从文本替换为 JSON,并使用 JSON.stringify(),它工作正常。
    猜你喜欢
    • 2018-01-03
    • 1970-01-01
    • 1970-01-01
    • 2017-03-10
    • 2021-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多