network/request.js网络请求模块封装

Posted 紫色烟云

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了network/request.js网络请求模块封装相关的知识,希望对你有一定的参考价值。

网络请求模块封装

import axios from "axios"; //引入axios模块

export function request(config) {
    //1,创建axios的实例
    const instance = axios.create({
        baseURL: "http://123.207.32.32:8000",
        timeout: 5000
    });


    // 2,axios的拦截器
    // 拦截器的作用:1,处理一些信息不符合服务器的要求;2,发送网络请求时界面出现loading动画;3,某些网络请求(比如登录(token)),必须携带一些特殊的信息
    instance.interceptors.request.use(config => {
        console.log("请求拦截");
        return config; //请求拦截器属于中间件需要返回config
    }, err => {
        console.log("请求拦截后出现错误!!", err);
        return Promise.reject(err);
    });

    // 3,响应拦截
    instance.interceptors.response.use(res => {
        console.log("响应拦截");
        return res.data; //响应拦截器属于中间件需要返回res,因为一般只用res.data所有此处也可返回res.data
    }, err => {
        console.log("响应拦截后出现错误!!", err);
        return Promise.reject(err);
    });

    return instance(config); //4,axios.create方法返回值为Promise对象
}
/* 5,在其它组件内使用本网络请求模块:1,引入:import {request} form "network/request.js" 2,使用: request({url:"XX"}.then(res=>{}).catch(err=>{}); ) */

/* 更多使用说明请查看文档:https://www.kancloud.cn/yunye/axios/234845/ */

@沉木

以上是关于network/request.js网络请求模块封装的主要内容,如果未能解决你的问题,请参考以下文章

在微信小程序中封装一个网络请求方法文件

第5章 》模拟网络请求

iOS开发简记:网络请求模块

Vue总结第七天~Promise网络请求和axios 网络模块

Vue总结第七天: Promise 异步请求和axios 网络模块

App 组件化/模块化之路——如何封装网络请求框架