我正在尝试将HTML页面中的文件上传到NodeJS后端
当选择multipart / form-data作为内容类型时,出现错误“错误的内容类型标头,没有多部分边界”。
表格:
<form>
<table>
<tr>
<td colspan="2">File Upload</td>
</tr>
<tr>
<th>Select File </th>
<td><input id="csv" name="csv" type="file" /></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="Submit" id="submitClickEvt"/>
</td>
</tr>
</table>
</form>
脚本
<script type="text/javascript">
var submitClickEvt = document.getElementById('submitClickEvt');
submitClickEvt.addEventListener('click', submitClicked);
function submitClicked(event) {
event.preventDefault();
var data = document.getElementById('csv').value;
ajaxCall(data, "http://localhost:3000/user/uploadpdf", function(status, response) {
if (status == 200) {
} else {
alert('Error', status)
}
});
}
function ajaxCall(data, url, callback) {
var xhttp = new XMLHttpRequest();
xhttp.open("POST", url, true);
xhttp.onreadystatechange = function() {
if (this.readyState == 4) {
return callback(this.status, JSON.parse(xhttp.response));
}
}
xhttp.setRequestHeader("Content-type", "multipart/form-data");
xhttp.send(data);
}
</script>
我想上传到后端,但是似乎无法正常工作。
答案 0 :(得分:0)
使用multipart / form-data时需要设置边界,请检查https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type中的boundary参数
您的代码缺少此内容,仅设置内容类型似乎是导致此问题的原因。