我在 Angular 中使用 HttpClient 将表单数据发送到 Nodejs。
resetPasswordRequest(email){
this.httpOptions={
headers: new HttpHeaders({
'Content-Type':'application/x-www-form-urlencoded'
})
}
const formData = new FormData();
formData.append('email',email);
return this.http.post("http://localhost:3001/forgotPassword",formData,this.httpOptions);
}
后来在 NodeJS 中,我有了 app.use(bodyParser.urlencoded({extended:true})。
我能够获得 req.body 但采用不同的格式,如下所示:
{ '-----------------------------24875245787704\r\nContent-Disposition: form-data; name':
'"email"\r\n\r\[email protected]\r\n-----------------------------24875245787704--\r\n' }
我不确定遗漏了什么。您能否澄清并帮助获取电子邮件的价值?我收到 req.body.email 为未定义。
来自 MDN FormData
:
如果编码类型设置为,它使用的格式与表单将使用的格式相同
"multipart/form-data"
这解释了为什么您以这种格式获取数据。
您可以使用 angular 来HttpParams
代替:
const formData = new HttpParams();
formData.set('email', email)
return this.http.post("http://localhost:3001/forgotPassword", formData.toString(), this.httpOptions);
toString
给你urlencoded
格式。从文档:
将 body 序列化为编码字符串,其中键值对(由 = 分隔)由 &s 分隔
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句