如何将此 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'
}
})
我正在尝试在 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'
}
})