javascript – 如何在Multipart superagent请求中发送对象以及附加文件?

我正在尝试使用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不能在同一个请求中一起使用.

最佳答案 我认为使用JSON.stringify()将JS_Object转换为JSON字符串应该足够了.

superagent
 .post(apiUrl + '/api/company/profile/edit')
 .field("profileData", JSON.stringify(profileData))
 .attach('company_logo', logoFile )
 ...
点赞