错误地解析了发布请求正文

时间:2014-05-31 20:54:36

标签: node.js angularjs express http-post

我试图像这样制作一个$ http.post:

$http({
   method: 'POST',
   url: '//192.168.2.1:3000/auth/signup',
   data: $scope.credentials,
   headers: {
      'Content-Type': 'application/x-www-form-urlencoded'
   }
})

当:

$scope.credentials = {email: 'some_email', password: 'some_password'}

在Node中,我记录了: 的console.log(req.body)

我得到了:

{ '{"email":"some_email","password":"some_password"}': '' }

我不明白为什么会这样。

1 个答案:

答案 0 :(得分:1)

您假设angularjs会自动为您自行序列化表单数据。

在处理非json的内容类型时,您需要自己序列化表单数据。

例如,当Content-Type等于'application/x-www-form-urlencoded'时,如果对象为{foo:"bar",bar:"baz"},则需要将其序列化为foo=bar&bar=baz