我有一个curl命令,我想使用ajax适应javascript。
curl -v -X 'POST' --data-binary @BinaryData.bin.txt "http://127.0.0.1:3000/api/v1/update_data"
在javascript中,我使用FileReader()并将文件读取为Text,BinaryString,Array Buffer,并为processData,contentType,cache等设置了不同的Ajax参数设置,但多次失败,但未成功发送正确的二进制字符串(如python示例)在下面。
我尝试在python中执行此操作,并且以下代码似乎按预期工作:
import requests
import os
path = os.path.normpath('d:/BinaryData.bin.txt')
file = open(path, 'rb')
data = file.read()
r = requests.post("http://127.0.0.1:3000/api/v1/update_data", data=data)
我在Javascript中缺少什么似乎无法从该文件发送正确的数据?
我尝试在javascript中进行操作的示例:
onFileSelected: function(evt) {
var file = evt.target.files[0];
var reader = new FileReader();
reader.onload = (function (file) {
return function(e) {
var data = e.target.result;
$.ajax({
url: "http://127.0.0.1:3000/api/v1/update_data",
data: data,
contentType: 'application/octet-stream',
processData: false,
type: "POST",
success: function () {
// all good
},
error: function() {
// failed
}
});
}
reader.readAsBinaryString(file);
}