我正在尝试从角度应用提交表单:
var formdata={
date:$scope.myForm.date
,name:$scope.myForm.name
,mobile:$scope.myForm.phone
};
$http({
method:"POST"
,url:'/forms/submit'
,data:formdata
, headers:{'Content-type':"application/x-www-form-urlencoded; charset=utf-8"}
})
但是当我用request.body.date
请求它时,我得到了未定义。打印request.body
参数将通过。
Listening on port 3000
'---- submitForm -----'
{ '{"date":"20140630","name":"asdf","phone":"12312"}': '' }
服务器代码使用body-parser
:
app.use(bodyParser.urlencoded({
extended: true
}));
当我打印request.body.name
时,我正在undefined
,但它就在你看到的那里。我做错了什么?
答案 0 :(得分:0)
您需要先将formdata
转换为urlencoded字符串,否则将其序列化为JSON($ http)。这就是你目前在服务器端看到JSON的原因。
如果您已在页面上使用jQuery,则可以通过formdata
转换$.param(formdata)
对象,并将其用作data
值。