我正在创建一个任务来发送PUT请求并使用节点中的axios上传.pot
文件。
我可以跑
curl -i -u api:<api-key> -F file=@dist/file.pot https://api-link.com/v2/api
它会正常工作
我已尝试在节点
中执行此操作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()
是处理curl命令的-u api:<api-key>
部分的函数,它返回{'Authorization': 'Basic <api-key>'}
。我已经检查过该函数是否有效,因为我能够成功地执行get请求。
那么ajax或axios中的-F file=@dist/file.pot
相当于什么?
答案 0 :(得分:0)
尝试以下解决方案:
var options = {
headers: Object.assign({'Content-Type': 'multipart/form-data'}, apiToken(),
form.getHeaders())
};
axios.post('https://api-link.com/v2/api/', formData, options)
同时检查内容类型标题是否设置为multipart / form-data。