axios请求方法以及下载到本地的方法

文章介绍了在前端开发中如何使用axios进行GET和POST请求,包括对象转字符串处理GET请求参数,使用formData处理POST请求中的密码加密(MD5)及大小写转换。此外,还展示了计算文件大小的函数以及针对不同浏览器的文件下载方法。
摘要由CSDN通过智能技术生成

方法合集

1. axios get类型 对象-》字符串
为什么传递的时候不直接字符串?原因:1个的参数还好说,多个的这样写就很不方便。对象的形式会好操作很多

//对象转字符串(axios需要字符串-》对象转成axios需要参数的字符串)
function createQuerystr (option) {//option是一个对象
      var queryStrArr = []
      for (var key in option) {
        if (typeof option[key] === 'object') {//键值是对象
          var k = JSON.stringify(option[key])
          var str = `${key}=${k}`
          queryStrArr.push(str)
        } else {
          var objStr = `${key}=${option[key]}`
          queryStrArr.push(objStr)
        }
      }
      var queryStr = queryStrArr.join('&')
      return queryStr//返回的字符串
    }
    //例子:
      baseInfoList (str) { // 所以get的axiso请求可以这样写
    return axios({
      url: api.system  + '/info/list'+'?'+createQuerystr(str),
      method: 'get'
    })
      }

2. post请求formData方式且密码加密md5
何时使用
·看到这种形式的,且url地址不加参数的且是post请求的,就是这种传参在这里插入图片描述

 function login (data) {
  data.password = md5(data.password)
  var pwd = data.password.toUpperCase();//字母变大写
  
 let form = new FormData();//生成formData对象
  form.append('userName', data.username);//给对象添加属性
  form.append('pwd', pwd)
  
  return axios({
    url: api.authurl + api.loginApi + '/Login',
    data: form,//formData对象
    method: 'POST',
  })
}

3.计算文件大小

  computeFileSize(bytes = 0) {
    if (bytes === 0 || bytes === null) return '0 B'
    var k = 1024 // or 1024
    var sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']
    var i = Math.floor(Math.log(bytes) / Math.log(k))
    return (bytes / Math.pow(k, i)).toPrecision(3) + ' ' + sizes[i]
    // toPrecision 把数字长度转化为指定长度;
    // Math.log(bytes) 对数 ln(bytes)
  },

4. 下载文件到本地

  function  downloadUpload (url) {
        if ((/Trident\/7\./).test(navigator.userAgent) || (/Trident\/6\./).test(navigator.userAgent)) {
        // IE10/IE11
          var aLink = document.createElement('a')
          aLink.className = 'download_link'
          var text = document.createTextNode(' ')
          aLink.appendChild(text)
          aLink.href = url
          aLink.click()
        } else { // Chrome,Firefox
          var iframe = document.createElement('iframe')
          iframe.src = url
          iframe.style = 'display:none'
          document.body.appendChild(iframe)
        }
      }
  }

//使用
let url =window.g.url_censysAnalysis_sqlresult+'?sql='+this.formInline.sql;//后端传递的地址
      downloadUpload(url)//就会下载到本地了
使用axios请求本地json文件可以通过以下几种方法实现: 方法一:在vue中引入本地json文件,然后通过变量接收数据。首先,你需要在vue文件中引入json文件,可以使用相对路径或者别名来引入。然后,在data选项中定义一个变量,用于接收json数据。在mounted钩子函数中,将json数据赋值给该变量即可。例如: ``` // 通过json文件路径引入 import jsonData from './***.json' data() { return { commonJson: {}, } }, mounted() { this.commonJson = jsonData console.log(this.commonJson) }, ``` 方法二:使用axios发起get请求获取本地json文件的数据。首先,你需要安装axios并引入它。然后,通过调用axios的get方法来获取json文件的数据。在then回调函数中,你可以处理获取到的数据。例如: ``` import axios from 'axios' Vue.prototype.$axios = axios this.$axios.get('./test.json').then(res => { console.log(res) }) ``` 方法三:在vue文件中使用require引入本地json文件。你可以使用require函数来引入json文件,然后将返回的数据赋值给一个变量。例如: ``` let data = require('路径') ``` 需要注意的是,具体使用哪种方法取决于你的项目配置和个人偏好。同时,要确保json文件的路径和名称正确,并且路径的相对位置与vue文件相符。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [获取本地json文件](https://blog.csdn.net/m0_50125215/article/details/126905322)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [axios请求本地json](https://blog.csdn.net/weixin_44763569/article/details/90444975)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值