亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在vue中使用axios下載文件

發布時間:2021-03-26 15:59:17 來源:億速云 閱讀:615 作者:Leah 欄目:web開發

本篇文章為大家展示了怎么在vue中使用axios下載文件,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

功能:點擊導出按鈕,提交請求,下載excel文件;

第一步:跟后端童鞋確認交付的接口的response header設置了

怎么在vue中使用axios下載文件

以及返回了文件流。

第二步:修改axios請求的responseType為blob,以post請求為例:

axios({
  method: 'post',
  url: 'api/user/',
  data: {
    firstName: 'Fred',
    lastName: 'Flintstone'
  },
  responseType: 'blob'
}).then(response => {
  this.download(response)
}).catch((error) => {

})

第三步:請求成功,拿到response后,調用download函數(創建a標簽,設置download屬性,插入到文檔中并click)

methods: {
  // 下載文件
  download (data) {
    if (!data) {
      return
    }
    let url = window.URL.createObjectURL(new Blob([data]))
    let link = document.createElement('a')
    link.style.display = 'none'
    link.href = url
    link.setAttribute('download', 'excel.xlsx')

    document.body.appendChild(link)
    link.click()
  }
}

下面在通過實例代碼看下vue中使用axios

1.安裝axios

npm:

$ npm install axios -S

cdn

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

2.配置axios

在項目中新建api/index.js文件,用以配置axios

api/index.js

import axios from 'axios';
let http = axios.create({
 baseURL: 'http://localhost:8080/',
 withCredentials: true,
 headers: {
  'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'
 },
 transformRequest: [function (data) {
  let newData = '';
  for (let k in data) {
   if (data.hasOwnProperty(k) === true) {
    newData += encodeURIComponent(k) + '=' + encodeURIComponent(data[k]) + '&';
   }
  }
  return newData;
 }]
});
function apiAxios(method, url, params, response) {
 http({
  method: method,
  url: url,
  data: method === 'POST' || method === 'PUT' ? params : null,
  params: method === 'GET' || method === 'DELETE' ? params : null,
 }).then(function (res) {
  response(res);
 }).catch(function (err) {
  response(err);
 })
}
export default {
 get: function (url, params, response) {
  return apiAxios('GET', url, params, response)
 },
 post: function (url, params, response) {
  return apiAxios('POST', url, params, response)
 },
 put: function (url, params, response) {
  return apiAxios('PUT', url, params, response)
 },
 delete: function (url, params, response) {
  return apiAxios('DELETE', url, params, response)
 }
}

這里的配置了POST、GET、PUT、DELETE方法。并且自動將JSON格式數據轉為URL拼接的方式

同時配置了跨域,不需要的話將withCredentials設置為false即可

并且設置了默認頭部地址為:http://localhost:8080/,這樣調用的時候只需寫訪問方法即可

3.使用axios

注:PUT請求默認會發送兩次請求,第一次預檢請求不含參數,所以后端不能對PUT請求地址做參數限制

首先在main.js中引入方法

import Api from './api/index.js';
Vue.prototype.$api = Api;

然后在需要的地方調用即可

this.$api.post('user/login.do(地址)', {
  "參數名": "參數值"
}, response => {
   if (response.status >= 200 && response.status < 300) {
    console.log(response.data);\\請求成功,response為成功信息參數
   } else {
    console.log(response.message);\\請求失敗,response為失敗信息
   }
});

上述內容就是怎么在vue中使用axios下載文件,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

金塔县| 新疆| 沅陵县| 平遥县| 民勤县| 扶风县| 桂平市| 永年县| 紫阳县| 萝北县| 荥经县| 延安市| 武邑县| 黄骅市| 兴和县| 锦州市| 新沂市| 海伦市| 盘锦市| 西青区| 特克斯县| 临西县| 华安县| 阿拉善盟| 清苑县| 类乌齐县| 桂平市| 扶沟县| 交城县| 邮箱| 炉霍县| 正阳县| 保定市| 安丘市| 新泰市| 静宁县| 明溪县| 惠州市| 苗栗市| 江西省| 达州市|