对于cURL的形式,axios或ajax等价是什么?

时间:2017-10-06 20:51:10

标签: node.js ajax curl httprequest axios

我正在创建一个任务来发送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相当于什么?

1 个答案:

答案 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。