当前位置:首页 > 前端开发 > Axios请求封装

Axios请求封装

7个月前 (05-25)50

Axios请求封装

封装: 将当前的某个请求单独放在一个目录中,方便.

第一步: 在src中新建一个目录和文件(完成数据请求)

​ request/requres.js

1. 封装axios请求源码

import axios from 'axios';
const ins=axios.create({
    baseURL:'http://kumanxuan1.f3322.net:8001',
    timeout:5000
})

// 请求拦截
    ins.interceptors.request.use(config=>{
        console.log('每次请求前都会执行这里的代码');
        return config;
    })

// 响应拦截
    ins.interceptors.response.use(res=>{
        console.log('每一次响应都会执行这里的代码');
        return res;
    })

// 导出ins
export default ins;

2. 封装axios讲解

1) 引入axios
import axios from 'axios';
2) 给当前请求添加一些配置
const ins=axios.create({
	//1.配置url(请求地址)
    baseURL:'请求接口地址',
    
    //2.请求超时时间(毫秒)
    timeout:5000
})
3) 请求拦截
ins.interceptors.request.use(config=>{
    console.log('每次请求前都会执行这里的代码');
    return config;
})


/* 
    token
    登录=> 账号,密码
    正确的账号密码,去登录接口中获取登录信息
    此时登录信息中包含了token, 可以把token的值的值存储起来
    localStorege.setItem('token',res.data.token)

    在请求拦截的位置获取token,
    let token=localStorage.getItem('token);
     if(token){
        //如果有token,证明登录过,把token设置到请求头中
        config.headers[X-Nideshop-Token]=token
     }
*/

4) 响应拦截
ins.interceptors.response.use(res=>{
        console.log('每一次响应都会执行这里的代码');
        // 这里的res就是你请求到的数据
        return res;
    	//return res.data;
})
5) 将ins开放(导出)出去
export default ins;

第二步: 在request中再创建一个文件(设置数据请求)

​ request/api.js

1. 引入request请求文件
import request from './request.js';
2. 请求不同接口中的数据
1. 导出
	export const GetHomeList = ()=>request.get("index/index");
	export const 名 = ()=>request.get("路径");



/*
    request 就是 axios
    request.get('路径/路径') <=> axios.get('http://xxx.xx/路径/路径')
    上面的语句就相当于(上面是箭头函数)
    export const 名 = function(){
        return request.get('/路径');
    }
    也就是说:
        名=request.get('/路径').then(res=>{})
        名=axios.get('/路径').then(res=>{})
        名().then
        以上三者是等价关系
*/

第三步: 在vue文件中使用封装后的axios接口

1. 引入封装的axios函数
import {GetHomeList} from '@/request/api.js';
2. 发起axios请求
created(){
	GetHomeList()
      .then(res => {
        console.log(res);
        console.log(res.data);
        //eg: 请求接口中的轮播图数据
        this.banner = res.data.data.banner;
      })
      .catch(err => {
        console.log(err);
      })
   }
}	

作者:又又儿
来源链接:https://www.cnblogs.com/ashuang/p/16607467.html

标签: Axios

“Axios请求封装” 的相关文章

axios设置请求头实现post请求发送数据的格式(Form Data)

common.js: common函数传递的参数添加 contentType: 'application/x-www-form-urlencoded' ...

axios基本用法

axios基本用法  vue更新到2.0之后,作者就宣告不再对vue-resource更新,而是推荐的axios,前一段时间用了一下,现在说一下它的基本用法。 首先...

原创:【ajax | axios跨域简单请求+复杂请求】自定义header头Token请求Laravel5后台【亲测可用】

原创:【ajax | axios跨域简单请求+复杂请求】自定义header头Token请求Laravel5后台【亲测可用】

如标题:我想在ajax的header头增加自定义Token进行跨域api认证并调用,api使用laravel5编写,如何实现? 首先,了解下CORS简单请求和复杂请求。   ...

axios封装

1.封装axios 1.1创建src/http文件夹   用来放网络请求相关的文件 1.2 src/http/index.js  文件夹下, 创建 index.j...

axios为什么创建实例?为什么创建不同实例

axios创建实例作用是啥 可以不用吗? 默认会导出实例axios,通常只需使用这个axios就可以了。 但是有时候你需要创建多个实例,比如你需要访问多个服务地址,而这些服务请求和...

Vue项目中Axios的简单封装

Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。本文重点介绍在Vue项目中简单封装Axios Vu...

vue项目中axios的封装和使用

vue项目中axios的封装和使用

一、axios的功能特点 在浏览器中发送 XMLHttpRequests 请求 在 node.js&nb...

axios面试题

谈谈你对axios的理解? axios是基于XMLHttpRequest服务来执行HTTP请求,支持Promise。 它可以拦截请求和响应 可以转换请求数据和响应数据,...

axios 响应数据为空

axios 响应数据为空

背景 在使用 axios 请求一个网站的时候发现 response.data 为空,且响应头内容也不是常见的响应头 而在浏览器上去访问是正常的 且使用 postma...