如何将此 cURL 命令转换为 JavaScript 中的 XMLHttpRequest?

How to convert this cURL command to XMLHttpRequest in JavaScript?

我正在尝试在 JS 中发送 multipart/mixed 内容类型的请求。这是我正在使用的 cURL 命令,它有效:

curl -k -i -X POST -H "Content-Type: multipart/mixed" -H "Timestamp: 2017-
04-20'T'13:15:05" -H "AuthToken: A834F35B21E7BE50067B3E352BED" -F 
"config=@request.json;type=application/json" -F "logo=@random2.gif" 
https://pmdev.****.com:8443/core/admin/hospital/26/department/63

这是我尝试在 JS 中使用的代码,但它不起作用:

let blob = new Blob([ JSON.stringify(config) ], {type:
'application/json'})

var formData = new FormData()
formData.append('config', blob)
formData.append('logo', logo)

var request = new XMLHttpRequest()
request.open(method, url)
request.setRequestHeader('Content-type', 'multipart/mixed')
request.setRequestHeader('AuthToken', authToken)
request.setRequestHeader('Timestamp', getTimestamp())
request.send(formData)

如何修复此代码?

let blob = new Blob([JSON.stringify(config)], {type: 'application/json'});
let formData = new FormData();
formData.append('config',blob);
formData.append('logo',logo);
let request = new XMLHttpRequest();
request.open('POST',url);
request.setRequestHeader('content-type', 'application/json');
request.send(formData);

//我认为你错误地引用了表单数据的内容,我删除了//对它们的引用。你应该使用 'POST' 作为你的方法,因为它会自动设置//你的 formData(很确定,这似乎是一个遥远的//断言)。另外,我将所有类型更改为 json。

//此页面包含所有 formData 方法:这样您就可以获取附加到您的 POST 的 //info https://developer.mozilla.org/en-US/docs/Web/API/FormData

最后我设法通过使用 axios 解决了这个问题, 这是我用过的代码

  let formData = new FormData()
  let blob = new Blob([ JSON.stringify(config) ], {type: 'application/json'})
  formData.append('config', blob)
  formData.append('logo', logo)

  axios.post(url, formData, {
    headers: {
      'AuthToken' : authToken,
      'Timestamp' : getTimestamp(),
      'Content-type': 'multipart/mixed'
    }
  })