1
我正在創建一個任務來發送PUT請求,並在節點中使用axios上傳.pot
文件。什麼是cURL的形式axios或ajax等效?
我可以運行
curl -i -u api:<api-key> -F [email protected]/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>'}
。我已經檢查過該功能是否有效,因爲我能夠成功執行獲取請求。
那麼在ajax或axios中相當於-F [email protected]/file.pot
?
內容類型正在設置,但我得到一個411狀態響應,說長度是必需的? – dylanpark
嘗試類似這樣來擺脫內容長度問題form.getLength(function(err,length)var r = request.post('http://your-site.com',{headers:{ 'content-length':length}},function(err,res,body){console.log(body)}); r._form = form });' 繼以上提到的問題後[https: //github.com/request/request/issues/316) –