veu3Axios网络请求封装

创建一个utils包,在下面创建request.js,里面内容如例子1。

创建一个api,里面创建一个文件为path.js和index.js

用于分开请求地址如例子2;

参考文档:https://www.kancloud.cn/yunye/axios/234845

例子1:

import axios from "axios"

import querystring from "querystring"

//错误处理方案

const errorHandle=(status,info)=>{

switch(status){

case 400:

console.log("语义有误");

break;

case 401:

console.log("服务器认证失败");

break;

case 403:

console.log("服务器拒绝访问");

break;

case 404:

console.log("地址错误");

break;

case 500:

console.log("服务器遇到意外");

break;

case 502:

console.log("服务器无响应");

break;

default:

console.log(info);

break;

}

}

const instance =axios.create({

timeout:5000

})

//拦截器一般

//发送数据之前

instance.interceptors.request.use(

config=>{

if(config.methods==="post"){

config.data=querystring.stringify(config.data)

}

//包含着网络请求的所有信息

return config;

}

error=>{

return Promise.reject(error);

}

)

//获取数据之前

instance.interceptors.response.use(

response=>{

return response.status===200?Promise.resolve(response):Promise.reject(response)},

error=>{

const {response}=error;

//错误的处理才是我们需要最关注的

errorHandle(response.status,response.info);

}

)

export default instance;

例子2:

index.js:

import axios from "../utils/request"

import path from "./path"

const api={

getChengpin(){

return axios.get(path.baseUrl+path.chengpin)

}

}

export default api

path.js:

const base={

baseUrl:"https://baidu.com/",

chengpin:"/api/blueberrypai/www.php"

}

例子3:其他地方应用

<script>

import api from "../api/index"

export default{

name:'Helloworld',

props:{

msg:String

},

mounted(){

api.getchengpin().then(res=>{

console.log(res.data);

})

}

}

</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烟火漫天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值