cURL的formsaxios或ajax是什么?

我正在创build一个任务来发送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>'} 。 我已经检查过该function,因为我能够成功地执行获取请求。

那么在ajax或axios中相当于-F file=@dist/file.pot是什么?

尝试下面的解决scheme:

var options = { headers: Object.assign({'Content-Type': 'multipart/form-data'}, apiToken(), form.getHeaders()) };

axios.post('https://api-link.com/v2/api/', formData, options)

还要检查内容types头是否被设置为multipart / form-data或不是。