我必须发送标头内容类型设置为“x-www-form-urlencoded”的 post 方法的数据。
此表单数据也是嵌套对象。例如
const formData = { name: "hello", email:abc@gmail.com, education: { subject: "engilsh" ... } } }
我必须发送标头内容类型设置为“x-www-form-urlencoded”的 post 方法的数据。
此表单数据也是嵌套对象。例如
const formData = { name: "hello", email:abc@gmail.com, education: { subject: "engilsh" ... } } }
我假设您遇到的问题是收到的数据显示为education: [object Object]
。
解决此问题的最简单方法是将标头从 更改x-www-form-urlencoded
为application/json
. 这样带有键的对象education
就不会被序列化为[object Object]
解决此问题的另一种方法(但很麻烦)是序列化数据客户端:
const formData = { name: "hello", email:abc@gmail.com, education: { subject: "engilsh" ... } } }
const formDataSerial = { raw: JSON.stringify(formData) }
// Send to server
并在服务器上,进行另一步解包:
const dataSerial = formData.raw
const data = JSON.parse(dataSerial)
// Yay!
您可以使用该querystring
模块。
像这样发布类似 Express 的伪代码的数据:
const querystring = require('querystring');
// ...
router.post(
'https://api/url',
querystring.stringify(formData),
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
)
// 编辑:该querystring
模块不适用于嵌套对象。我的错。我可能会建议将对象序列化为 JSON 字符串。