提问人:Bart Friederichs 提问时间:11/9/2023 最后编辑:Bart Friederichs 更新时间:11/9/2023 访问量:31
如何将二进制数据作为原始开机自检发送?
How do I send binary data as raw POST?
问:
我正在使用以下代码将数据二进制化为REST接口:POST
var file = $("#file-to-upload")[0].files[0];
var filename = file.name;
var url = "/upload";
const reader = new FileReader();
reader.onload = function(e) {
console.log(`Read file data: length: ${e.target.result.length}`);
$.post({
url: url,
data: e.target.result,
headers: {
"Content-Type": "application/octet-stream",
"Content-Disposition": `attachment; filename=${filename}`
},
success: function(r) {
console.log(r);
}
}).fail(function(xhr, status, error) {
console.log(xhr);
});
}
reader.readAsBinaryString(file);
控制台会正确显示文件中的字节数。但是在开发工具中检查实际情况时,我可以看到它发送了更多的数据:POST
e.target.result
是一个二进制字符串,没有序列化(奇怪的是,开发控制台显示 26.8kB,而字符串长度为 12817)。
我在这里错过了什么?
答: 暂无答案
评论
e.target.result
e.target.result
data: { binary: e.target.result },