【发布时间】:2021-01-04 09:03:28
【问题描述】:
我在尝试使用 axios 执行 POST 请求时收到此错误:
TypeError: data should be a string, Buffer or Uint8Array
这是我的代码 sn-p:
var fs = require('fs'),
axios = require('axios');
var FormData = require('form-data');
var form = new FormData();
form.append('file', fs.createReadStream("qa_test_file_DOC.txlf"));
form.append('extractArchive', false);
let request_config = {
headers: {
'Authorization': `Bearer eyJhbGciOiJIUzI1NXXXX.....`,
...form.getHeaders()
}
}
let reqUrl = "https://XXXXX/XX/rest/v1/XXXXX";
try {
axios.post(reqUrl, form, request_config)
.then(function (response) {
console.log(response);
return callback(response);
})
.catch(function (error) {
console.log(error);
return callback(error);
});
} catch (ex) {
console.log("exception ", ex);
}
尝试使用管道和大多数可能的解决方案。文件存在。不明白这里出了什么问题。 Readstream 中的任何内容? 感谢您的帮助。
【问题讨论】:
-
你在使用 TypeScript 吗?如果没有,你真的应该 - 在没有类型注释的情况下编写非平凡的应用程序代码确实是不可能的。
-
您确定您的目标端点支持
multipart/form-data请求而不是直接将文件放入请求正文中吗? (因为 RESTful Web 服务接受multipart/form-data正文中的数据并不常见)。
标签: javascript node.js axios fs