如何在JavaScript中将此cURL命令转换为XMLHttpRequest?
我正在尝试用JS发送一个多部分/混合内容类型的请求。这是我正在使用的cURL命令,它可以工作:如何在JavaScript中将此cURL命令转换为XMLHttpRequest?,javascript,curl,xmlhttprequest,multipart,Javascript,Curl,Xmlhttprequest,Multipart,我正在尝试用JS发送一个多部分/混合内容类型的请求。这是我正在使用的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=@rando
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方法:这样你就可以在贴子的//info中找到它们
最后我用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'
}
})
按f12并检查网络呼叫。它显示的是什么?我建议您使用。这是一个跨来源请求吗?使用浏览器开发工具提供疑难解答详细信息如果所有参考资料都没有问题,我的方法也是“发布”