我正在尝试使用superagent向我的API发出多部分POST请求。
我的代码:
superagent
.post(apiUrl + '/api/company/profile/edit')
.field("profileData", profileData)
.attach('company_logo', logoFile )
.set('Accept', 'application/json')
.end(function(err, res){
if(err){
dispatch(updateProfileStatusAction("error", res));
} else {
dispatch(updateProfileStatusAction("success", res));
}
});
我遇到的问题是profileData
是一个嵌套的对象。当我在API中收到请求时,我将profileData
的值视为字符串[Object, Object]
当我查看带有superagent https://visionmedia.github.io/superagent/#multipart-requests的多部分请求的文档时,似乎.field()
只是一个键值对而不是一个对象。然后我尝试使用.send({profileData:profileData})而不是字段,但是当我这样做时,我得到一个错误,说.attach和.send不能在同一个请求中一起使用。
答案 0 :(得分:2)
我认为使用JSON.stringify()
将JS_Object转换为JSON字符串应该足够了。
superagent
.post(apiUrl + '/api/company/profile/edit')
.field("profileData", JSON.stringify(profileData))
.attach('company_logo', logoFile )
...