美文网首页
axios 基本用法

axios 基本用法

作者: jeneen1129 | 来源:发表于2020-12-09 09:11 被阅读0次

先安装npm install --save-dev axios

main.js

import Vue from 'vue'
import axios from 'axios'

// axios.defaults.baseURL = 'http://127.0.0.1:8091/demo/'
axios.defaults.baseURL = '/demo/'
axios.defaults.withCredentials = true
Vue.prototype.$axios = axios

/config/index.js

dev: {
  proxyTable: {
      // 跨域处理
      '/demo': {
        target: 'http://localhost:8091/',  //目标接口域名
        changeOrigin: true,  //是否跨域
        pathRewrite: {
          '^/demo': '/demo'   //重写接口
        }
      }
    },
}

调用

this.$axios.get('/XXX', {  params:  XXX   }).then(res => {
  var data = res.data
  XXX
}).catch(err => {
  XXX
})
var data = new FormData()
data.append('xxx', xxx)
this.$axios.post('/XXX', data).then(res => {
  var data = res.data
  XXX
}).catch(err => {
  XXX
})


// 处理高并发情况
var axios1 = this.$axios.post(...)
var axios2 = this.$axios.get(...)
var axios3 = this.$axios.get(...)

this.$axios.all([axios1, axios2, axios3]).then(this.$axios.spread((res1, res2, res3) => {
  var data1 = res1.data
  var data2 = res2.data
  var data3 = res3.data
  // 同时处理
}))

// 下载文件
this.axios.post('/xxx', data, {responseType: 'blob'}).then(res => {
        let blob = new Blob([res.data], {type: 'application/force-download'})
        var downloadElement = document.createElement('a')
        var 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对象
      })
    }

// 预览相关图片
this.axios.post('/XXX', data, {responseType: 'arraybuffer'}).then(res => {
        object.src = 'data:image/png;base64,' + btoa(new Uint8Array(res.data).reduce((data, byte) => data + String.fromCharCode(byte), ''))
        this.files.push(object)
      }).catch((err) => {
        console.log(err)
      })
// 上传文件
this.file.dataToServer.append('name', this.file.name)
this.file.dataToServer.append('file', fileObject)
this.axios.post('/XXX',  this.file.dataToServer, {headers: {'Content-type': 'multipart/form-data'}}).then(res => {
  XXX
  this.file.name = ''
  this.file.dataToServer = new FormData()
}).catch(() => {
  XXX
})

相关文章

网友评论

      本文标题:axios 基本用法

      本文链接:https://www.haomeiwen.com/subject/ckgfgktx.html