中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

怎么在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

景谷| 石屏县| 建德市| 开远市| 信丰县| 泸水县| 巴马| 民丰县| 宁河县| 永康市| 双江| 宁陵县| 台北县| 临沭县| 贡嘎县| 安义县| 博白县| 敦煌市| 芒康县| 班戈县| 安宁市| 噶尔县| 东源县| 德庆县| 建阳市| 平乡县| 吴旗县| 广东省| 淳安县| 泽普县| 柘城县| 阳泉市| 定结县| 凌海市| 喜德县| 浮梁县| 长阳| 高密市| 临夏市| 阳新县| 綦江县|