vue封装axios+promise

本文介绍了如何在 Vue 项目中安装并封装 Axios,利用 Promise 处理 HTTP 请求。内容包括安装 Axios 和 QS,解释 Promise 的三种状态,列举 Axios 的主要特性。接着展示如何配置 Axios 的请求和响应拦截器,处理不同环境下的 API 基础 URL,并提供了一个自定义的 GET 和 POST 请求示例。最后在 main.js 中全局引用封装好的 Axios 实例。
摘要由CSDN通过智能技术生成

## 1.安装axios、qs

``` bash

  npm install axios --save

  npm install qs --save

```

Promise有三种状态:

  1.pending: 等待中,或者进行中,表示还没有得到结果

  2.resolved: 已经完成,表示得到了我们想要的结果,可以继续往下执行

  3.rejected: 也表示得到结果,但是由于结果并非我们所愿,因此拒绝执(用catch捕获异常)

 

axios特点:

  1.从浏览器中创建 XMLHttpRequests

  2.从 node.js 创建 http 请求

  3.支持 Promise API

  4.拦截请求和响应 (就是有interceptor)

  5.转换请求数据和响应数据

  6.取消请求

  7.自动转换 JSON 数据

  8.客户端支持防御 XSRF

 

## 2.在src目录下创建api文件夹,然后在下一级创建api.js、http.js

 http.js

 ``` bash

  import axios from 'axios' // 引入axios

  import store from '../store/index' // 引入Vuex

  import router from '../router' // 引入vue-router

  import { Message } from 'element-ui' //局部引入UI框架组件

  if(process.env.NODE_ENV == 'development'){

      axios.defaults.baseURL = "" //开发环境

    }else if(process.env.NODE_ENV == 'debug'){

      axios.defaults.baseURL = "" //调试环境

    }else if(process.env.NODE_ENV == 'production'){

      axios.defaults.baseURL = "" //线上环境

    }

 

  axios.defaults.timeout = 100000; // 响应超时设置

 

  //添加请求拦截器

  axios.interceptors.request.use(

    config => {

      if (sessionStorage.getItem('Authorization')) {

        config.headers.Authorization = `Bearer` + " " + sessionStorage.getItem('Authorization'); //查看是否存在token

        return config;

      } else if (config.isUpload) {

        config.headers = { 'Content-Type': 'multipart/form-data'} // 根据参数是否启用form-data方式

        return con

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值