我正在创建一个任务来发送 PUT 请求并上传 .pot
在 Node 中使用 axios 文件。
我可以跑
curl -i -u api:<api-key> -F file=@dist/file.pot https://api-link.com/v2/api
它会工作得很好
我尝试在 Node 中执行此操作
var fd = require('form-data');
var axios = require('axios');
var form = new FormData();
form.append('file', 'dist/file.pot');
var header = { headers: Object.assign({}, apiToken(), form.getHeaders()) };
axios.put('https://api-link.com/v2/api/', form, header)
.then(function(res) {
console.log(res);
})
.catch(function(err) {
console.log(err);
})
这不像curl命令那样工作。 apiToken()
是一个处理 -u api:<api-key>
的函数是curl命令的一部分,它返回{'Authorization': 'Basic <api-key>'}
。我已检查该函数是否有效,因为我能够成功执行获取请求。
那么 -F file=@dist/file.pot
相当于什么?在 ajax 或 axios 中?
最佳答案
尝试以下解决方案:
var 选项 = {
header :Object.assign({'Content-Type': 'multipart/form-data'}, apiToken(),
表单.getHeaders())
};
axios.post('https://api-link.com/v2/api/', formData, options)
还要检查内容类型 header 是否设置为 multipart/form-data。
关于node.js - cURL 的 --form 的 axios 或 ajax 等效项是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46613752/