【axios】

1、安装

控制台输入npm install axios或者yarn add axios
安装成功后查看package.json文件,若在dependencies中找不到axios则表明安装失败,自行百度报错
成功后截图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jhhAanE8-1651500304990)(:/c9a095ed64354b098814db8735ef20d2)]

2、引入——方法1

main.js中添加

import axios from 'axios'
Vue.use(axios)

完整截图如下
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9F4eacrZ-1651500304992)(:/5e10a1baf22b41cf8d4711974089bdbe)]

该方法较为麻烦

3、引入——方法2

1、导入

src下新建目录api,api中新建index.js
如图所示
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rWSRDLoV-1651500304993)(:/3939f5db9eb94cadabeafd7082213c23)]
index.js中写入

import axios from 'axios';

let http = axios.create({
  baseURL: 'http://localhost:8080/',
  withCredentials: false,
  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 ,这样调用的时候只需写访问方法即可

2、main.js中引用

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

3、使用方法

this.$api.post('地址', {
    "参数名": "参数值"
}, response => {
     if (response.status >= 200 && response.status < 300) {
        console.log(response.data);\\请求成功,response为成功信息参数
     } else {
        console.log(response.message);\\请求失败,response为失败信息
     }
});

4、测试

在Home.vue中写入
在这里插入图片描述

运行控制台查看即可
附代码如下:

<template>
  <div>
	  <el-button type="primary" @click="test">主要按钮</el-button>
  </div>
</template>
<script>
export default {
		methods:{
			test(){
				this.$api.get('这里填自己的接口', 
				{
				    "参数名": "参数值"
				}, response => {
				     if (response.status >= 200 && response.status < 300) {
				        console.log(response.data);//请求成功,response为成功信息参数
				     } else {
				        console.log(response.message);//请求失败,response为失败信息
				     }
				});
			}
		}
}
</script>
可能的错误

若出现如下报错,则表明是跨域问题,联系后端解决或自行百度跨域问题
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RghbQPKc-1651500304995)(:/116543f1480648b8846b2d2550c0d388)]

或者可将withCredentials参数改为false再次测试即可
如图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yGnrcXNi-1651500304995)(:/77b784dd47e74c44b17446b2205dfca0)]

02/05/2022 21:40

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值