axios常見用法
工作中,經常用到axios,axios 發送/x-www-url-,axios上傳文件,axios下載文件或者ajax下載文件,這里做個總結。
axios 發送/x-www-url-
默認的axios以json格式發送數據,如果想,則使用qs將數據編碼一下再發送,
const qs = require('qs');
axios.post('/foo', qs.stringify({ 'bar': 123 }));
axios上傳文件
axios上傳文件,使用,既可以上傳文件也可以傳文本,如果發送的數據不是File也不是Blob,則會轉為字符串。
const form = new FormData();
form.append('my_field', 'my value');
form.append('my_file', fileInputElement.files[0]);
axios.post('https://example.com', form, { headers: form.getHeaders() })
的常見用法如下
const formData = new FormData();

formData.append("username", "Groucho");
formData.append("accountnum", 123456); // number 123456 is immediately converted to a string "123456"
// HTML file input, chosen by user
formData.append("userfile", fileInputElement.files[0]);
// JavaScript file-like object
const content = 'hey!
'; // the body of the new file…
const blob = new Blob([content], { type: "text/xml"});

formData.append("webmasterfile", blob);
const request = new XMLHttpRequest();
request.open("POST", "http://foo.com/submitform.php");
request.send(formData);
ajax下載文件、axios下載文件
下載文件,通常采用非ajax下載文件,比如點擊一個超鏈接、點擊一個按鈕,而在前端分離的項目中,用戶登錄標識通常在中,為了攜帶登錄憑證,就有了ajax下載文件的需求。瀏覽器對Blob API 的支持ajax上傳文件有什么用ajax上傳文件有什么用,讓ajax下載文件成為可能,這里以axios舉例;大體的思路是請求二進制數據,然后將二進制轉為URL,創建超鏈接,超鏈接的地址就是這個URL,點擊后下載,下載完畢后,釋放內存。
axios.get(url,{responseType:'blob'}).then(resp=>{
let _res = res.data;
const fileName = "自定義文件名稱或者從header中content-disposition取也可以";
let blob = new Blob([_res]);
let downloadElement = document.createElement('a');
let href = window.URL.createObjectURL(blob); // 創建下載的鏈接
downloadElement.href = href;

downloadElement.download = `${fileName}`; // 下載后文件名
document.body.appendChild(downloadElement);
downloadElement.click(); // 點擊下載
document.body.removeChild(downloadElement); // 下載完成移除元素
window.URL.revokeObjectURL(href); // 釋放掉blob對象
})
個人公眾號