发送类似curl的帖子数据



我使用这个curl命令将文件推送到web服务器

curl -i -X POST -H 'Content-Type: application/json' -d @./mylocalfile -k https://192.168.1.10:8283/here

我想用一个简单的网页代替,在那里我可以选择myloclfile,我有这个

<html>
<body>
<input class="file" type="file" id="fafafa" name="fileupload" /><br/>
<br/>
<input type="button" value="Submit" onclick="xhrSubmit();" />
<script type="text/javascript ">
function xhrSubmit() {
var file_obj = document.getElementById('fafafa').files[0];
var fd = new FormData();
fd.append('fafafa', file_obj);
xhr = new XMLHttpRequest();
xhr.open('POST', 'https://192.168.1.10:8283/here', true)
xhr.setRequestHeader('Content-type', 'application/json');
xhr.send(fd);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
var obj = JSON.parse(xhr.responseText);
console.log(obj);
}
};
}
</script>
</body>
</html>

但当我使用网页时,我会得到它所期望的对象或数组的响应。

如何更改javascript代码以发送数据(如curl命令(,从而在将文件发布到Web服务器时没有问题?

我的服务器端的完全提升异常是

Exception <unspecified file>(1): expected object or array

您的内容类型错误。您没有向服务器发送JSON。

尝试将内容类型设置为application/x-www-form-urlencoded

我想说,检查一下您收到的curl版本。它不能是application/json和文件数据。您需要多部分/表单数据。

最后,这个问题是json有效负载消息和curl中有很多换行符不在乎,但浏览器在乎。

最新更新