我正在尝试向服务器发送csv
文件。我正在使用FileReaderAPI
加载文件,然后通过ajax
发送。但是我收到以下错误。
对于请求'POST / api / upload'[缺少边界标头]
JS
$('#upload-file-btn').on('click', function(e){
e.preventDefault();
var file = document.getElementById('input_file').files[0];
console.log(file);
reader = new FileReader();
reader.onload = function () {
var source = reader.result;
var payload = {source: source};
console.log(source);
$.ajax({
url:"http://localhost:9000/api/upload",
type:"POST",
data: JSON.stringify(payload),
success: function(data){
console.log(data);
}
});
}
reader.readAsText(file);
});
某些解决方案建议手动包含"Content-Type" : "multipart/form-data"
标头会导致此问题。我没有使用但仍然得到上述问题。
答案 0 :(得分:2)
如果您需要将数据作为文件发送,则必须使用FormData对象通过ajax发送多部分/表单数据数据。
var fd = new FormData();
fd.append('source', $('#input_file')[0].files[0]);
$.ajax({
url:"http://localhost:9000/api/upload",
type:"POST",
data: fd,
contentType: false,
processData: false,
success: function(data){
console.log(data);
}
});
答案 1 :(得分:0)
尝试以下操作:
$.ajax({
url:"http://localhost:9000/api/upload",
type:"POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: JSON.stringify(payload),
success: function(data){
console.log(data);
}
});
});