Vue请求封装

现在大部分的Vue开发者都使用了axios请求方式

  1. 新建一个Http.js文件
  2. 引入axios(需要npm安装到项目中)
  3. 引入Vue(存储登录信息)
import axios from 'axios'
import Vue from 'vue'
import util from '@/util.js'// 自己定义的工具类
axios.defaults.timeout = 5000;  //响应时间
axios.defaults.headers.post['Content-Type'] 
= 'application/x-www-form-urlencoded;charset=UTF-8';  //配置请求头

4.封装Post请求
在请求时要首先验证请求的Url是否存在,这时候调用工具类中的方法。
在util.js中

function isBlank(str) {
    if (Object.prototype.toString.call(str) === '[object Undefined]') { //空
        return true;
    } else if (Object.prototype.toString.call(str) === '[object Null]') { //空
        return true;
    } else if (Object.prototype.toString.call(str) === '[object String]') { //字条串
        return str.length == 0 ? true : false;
    } else if (Object.prototype.toString.call(str) === '[object Array]') { //数组
        return str.length == 0 ? true : false;
    } else if (Object.prototype.toString.call(str) === '[object Object]') { //对象
        return JSON.stringify(str) == '{}' ? true : false;
    } else {
        return false;
    }
}
//暴露给外部调用
export default {
isBlank
}

在请求中调用

async function Post(option) {
    if (util.isBlank(option.url))
        //在此处返回错误消息提示
    var op = {
        method: 'post',
        url: option.url,
        data: option.data
    };
    var Success = function (response) {
        typeof option.OnSuccess == "function" ? option.OnSuccess(response) : function () { }
    }
    var Error = function (error) {
        var response = error.response;
        var status = response.status; 
        if (status == 401) {//未登陆 
             //跳转到登录页面
        }
        else if (status == 500) {//系统错误 
           //在此处返回错误消息提示
        }
        else if (status == 501) {//自定义错误
        //在此处返回错误消息提示
        }
        else {//其他错误
           //在此处返回错误消息提示
        }
        return false;
    }
    await axios(op).then(Success, Error)
        .catch(function (error) {
            console.log("axios Catch");
            console.log(error);
        });
}

需要暴露给外部使用

export default {
    Post
}

在vue文件中使用

  1. <script></script>中引用
import http from "@/Http.js";
  1. 使用
  //加载表格数据
            GetOrderData() {
                var self = this;
                var op = {
                    url: "接口",
                    data: {
                        CustomID: self.CustomID  
                    },
                    OnSuccess: function (res) {
                    console.log(res)
                    }
                };
                http.Post(op);
            },

完成。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值