官方文档:https://axios-http.com/zh/
    Axios中文网:http://www.axios-js.com/zh-cn/docs/

    牛逼教程:https://www.bilibili.com/video/BV1rz4y1Z7n3

    封装axios

    1. // 这份文件就是用来做拦截的
    2. import axios from 'axios'
    3. // 创建一个单例(实例)
    4. const instance = axios.create({
    5. baseURL: 'http://kumanxuan1.f3322.net:8001',
    6. timeout: 4000
    7. })
    8. // 拦截器 - 请求拦截
    9. instance.interceptors.request.use(config=>{
    10. // 部分接口需要拿到token
    11. let token = localStorage.getItem('token');
    12. if(token){
    13. config.headers = {
    14. 'aa-token': token
    15. }
    16. }
    17. return config;
    18. }, err=>{
    19. return Promise.reject(err)
    20. });
    21. // 拦截器 - 响应拦截
    22. instance.interceptors.response.use(res=>{
    23. return res;
    24. }, err=>{
    25. return Promise.reject(err)
    26. });
    27. // 整体导出
    28. export default instance;

    写API

    1. // 将request.js整体导入
    2. import request from './request'
    3. // 按需导出每个请求,也就是按需导出每个api
    4. // 请求首页数据
    5. export const GetHomeAPI = (params) => request.get('/index/index', {params});
    6. // 登录
    7. export const PostLoginAPI = (params) => request.post('/auth/loginByWeb', params);
    1. <template>
    2. <div id="app">
    3. <button @click="getFn">发起一个get请求</button>
    4. <button @click="postFn">发起一个post请求</button>
    5. </div>
    6. </template>
    7. <script>
    8. // 按需导入
    9. import { GetHomeAPI, PostLoginAPI } from '@/request/api.js'
    10. export default {
    11. name: 'Home',
    12. methods: {
    13. getFn() {
    14. // 发起一个get请求
    15. GetHomeAPI().then(function (res) {
    16. console.log(res)
    17. });
    18. },
    19. postFn() {
    20. // 发起一个post请求
    21. PostLoginAPI({
    22. username: '你单排吧',
    23. pwd: '123456'
    24. }).then(res => {
    25. console.log(res)
    26. })
    27. }
    28. }
    29. }
    30. </script>