• 【vue会员管理系统】篇三之自定义Axios、初试后台接口、跨域问题


    一、自定义封装Axios异步对象和添加拦截器

            因为本项目很多组件需要通过Axios发送一步请求,所以封装Axios对象,自己封装的Axios在后续可以使用axios中提供的拦截器。

    1.在src文件夹下创建utils文件夹,再在utils文件夹下创建request.js文件

    2.填入以下代码

    1. import axios from "axios";
    2. //创建自定义axios对象
    3. const request = axios.create({
    4. baseURL: "/", //默认路径
    5. timeout: 5000, //请求超时
    6. });
    7. //请求拦截器
    8. request.interceptors.request.use(
    9. (config) => {
    10. //请求拦截
    11. return config;
    12. },
    13. (error) => {
    14. //出现异常
    15. return Promise.reject(error);
    16. }
    17. );
    18. //响应拦截
    19. request.interceptors.request.use(
    20. (response) => {
    21. return response;
    22. },
    23. (error) => {
    24. return Promise.reject(error);
    25. }
    26. );
    27. export default request; //导出自定义的axios

    二、调用后台服务接口API封装(浅试)

    1.在public文件夹下新建db.json文件,并添加数据。

    1. [
    2. {"name":"hh","age":"18"},
    3. {"name":"jj","age":"18"},
    4. {"name":"kk","age":"18"}
    5. ]

    2.在src文件夹下新建api文件夹,再在api文件夹下新建test.js文件,用来封装测试调用的接口。并在test.js文件里填入以下代码:

    1. /**
    2. * 封装调用接口
    3. */
    4. //同import axios from "@/utils/request";
    5. import request from "@/utils/request";
    6. export default {
    7. getList() {
    8. const req = request({
    9. method: "get",
    10. url: "/db.json",
    11. });
    12. return req;
    13. },
    14. };

    3.打开components下的HelloWorld.vue。在