最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue+axios實現(xiàn)文件下載及vue中使用axios的實例

 更新時間:2018年09月21日 14:22:53   作者:留給時間  
這篇文章主要介紹了vue+axios實現(xiàn)文件下載及vue中使用axios的實例,需要的朋友可以參考下

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

第一步:跟后端童鞋確認(rèn)交付的接口的response header設(shè)置了

response header

以及返回了文件流。

第二步:修改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后,調(diào)用download函數(shù)(創(chuàng)建a標(biāo)簽,設(shè)置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格式數(shù)據(jù)轉(zhuǎn)為URL拼接的方式

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

并且設(shè)置了默認(rèn)頭部地址為:http://localhost:8080/,這樣調(diào)用的時候只需寫訪問方法即可

3.使用axios

注:PUT請求默認(rèn)會發(fā)送兩次請求,第一次預(yù)檢請求不含參數(shù),所以后端不能對PUT請求地址做參數(shù)限制

首先在main.js中引入方法

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

然后在需要的地方調(diào)用即可

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


總結(jié)

以上所述是小編給大家介紹的vue+axios實現(xiàn)文件下載及vue中使用axios的實例,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 詳解gantt甘特圖可拖拽、編輯(vue、react都可用?highcharts)

    詳解gantt甘特圖可拖拽、編輯(vue、react都可用?highcharts)

    去年我遇到了一個甘特圖的需求,做了很多工作,最終還是不完美,今天使用一個新包,給大家重新學(xué)習(xí)下vue?甘特圖gantt的相關(guān)知識,感興趣的朋友一起看看吧
    2021-11-11
  • vue.js指令和組件詳細(xì)介紹及實例

    vue.js指令和組件詳細(xì)介紹及實例

    這篇文章主要介紹了vue.js功能介紹 - 指令,組件詳細(xì)介紹及實例,詳細(xì)的介紹了指令和組件的用法,有興趣的可以了解一下。
    2017-04-04
  • 如何用Vue實現(xiàn)父子組件通信

    如何用Vue實現(xiàn)父子組件通信

    這篇文章主要介紹了如何用Vue實現(xiàn)父子組件通信,對Vue感興趣的同學(xué),可以參考下
    2021-05-05
  • vue如何給頁面增加url前綴

    vue如何給頁面增加url前綴

    這篇文章主要介紹了vue如何給頁面增加url前綴問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • uni-app中使用ECharts配置四種不同的圖表(示例詳解)

    uni-app中使用ECharts配置四種不同的圖表(示例詳解)

    在uni-app中集成ECharts可以為我們的應(yīng)用提供強大的圖表功能,我們詳細(xì)說一下如何在uni-app中使用ECharts,并配置四種不同的圖表,感興趣的朋友跟隨小編一起看看吧
    2024-01-01
  • vue實現(xiàn)指定日期之間的倒計時

    vue實現(xiàn)指定日期之間的倒計時

    這篇文章主要為大家詳細(xì)介紹了vue實現(xiàn)指定日期之間的倒計時,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • vue關(guān)于select組件綁定的值為數(shù)字類型的問題

    vue關(guān)于select組件綁定的值為數(shù)字類型的問題

    這篇文章主要介紹了vue關(guān)于select組件綁定的值為數(shù)字類型的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Vue?處理異步加載順序問題之如何在Konva中確保文本在圖片之上顯示

    Vue?處理異步加載順序問題之如何在Konva中確保文本在圖片之上顯示

    在處理Konva中的異步加載順序問題時,確保在圖像加載完成后再添加其他元素是關(guān)鍵,通過將回調(diào)函數(shù)放在imageObj.onload中,并正確處理變量捕獲,我們可以確保文本總是繪制在圖片之上,這不僅解決了顯示順序的問題,也為未來的調(diào)試提供了明確的方向,感興趣的朋友一起看看吧
    2024-07-07
  • 在 Vue 中使用 JSX 及使用它的原因淺析

    在 Vue 中使用 JSX 及使用它的原因淺析

    這篇文章主要介紹了在 Vue 中使用 JSX 及使用它的原因淺析,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • 發(fā)布訂閱模式在vue中的實際運用實例詳解

    發(fā)布訂閱模式在vue中的實際運用實例詳解

    訂閱發(fā)布模式定義了一種一對多的依賴關(guān)系,讓多個訂閱者對象同時監(jiān)聽某一個主題對象。這篇文章主要介紹了發(fā)布訂閱模式在vue中的實際運用,需要的朋友可以參考下
    2019-06-06

最新評論

濮阳市| 上犹县| 米林县| 九江市| 广南县| 舟山市| 乐山市| 普兰县| 衢州市| 松江区| 太湖县| 新密市| 莱芜市| 通山县| 汉沽区| 安陆市| 沙田区| 鄂州市| 阿克苏市| 灵川县| 南京市| 湟源县| 凤台县| 旌德县| 桦南县| 商洛市| 赫章县| 崇明县| 西乌珠穆沁旗| 苏尼特左旗| 正安县| 南川市| 泊头市| 上饶县| 唐海县| 新建县| 伊金霍洛旗| 浦北县| 东丽区| 右玉县| 苏州市|