一、配置axios请求响应拦截

src/utils/request.js

import axios from "axios";
//拦截器(请求,响应)
//响应
axios.interceptors.response.use(res => {
    //成功
    return res.data;
}, err => {
    //失败
    return Promise.reject(err)
})

//请求
axios.interceptors.request.use(config=>{
    //配置基础url,以后所有请求地址自动携带api
    config.baseURL = '/api';
    return config;
})
export default axios;

二、在 vue.config.js 文件设置代理请求

const { defineConfig } = require("@vue/cli-service");
module.exports = defineConfig({
  transpileDependencies: true,
  lintOnSave: false, //忽略lint检测
  //请求代理
  devServer: {
    proxy: {
      //http://localhost:7001/api/name -> http://39.102.89.187:7001/name
      '^/api': {
        target: 'http://39.102.89.187:7001',
        pathRewrite: {
          '/api': ''
        }
      },
    }
  }
});

三、在 src/api/index.js 中设置请求地址

import axios from "@/utils/request";

/**
 * 获取 banner 数据
 * @returns 
 */
export async function getBanner() {
    return await axios.get('/banner');
}

/**
 * 获取菜单
 * @param {object} [params] -> 对象
 * @param {string} [params.userId] -> 用户id 
 * @param {string} [params.classify] -> 菜谱分类 
 * @param {string} [params.craft] -> 工艺
 * @param {string} [params.flavor] -> 口味 
 * @param {string} [params.hard] -> 难度 
 * @param {string} [params.people] -> 人数 
 * @param {string} [params.page] -> 页码 
 * @returns 
 */
export async function getMenuQuery(params) {
    return await axios.get('/menu/query', { params });
}

四、调用api

import { getBanner, getMenuQuery } from "@/api/index";
await getBanner();
await getMenuQuery();
getBanner().then(res=>{

})
getMenuQuery().then(res=>{

})

 

原文地址:http://www.cnblogs.com/Lmyong/p/16924738.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性