Vue3 第三章 项目优化axios封装和跨域

  1. axios 封装
    新建request.js文件
    import axios  from "axios";
    const baseURL='http://127.0.0.1:8080';
    const instance = axios.create({baseURL});
    //响应拦截器
    instance.interceptors.response.use(
        result=>{
            return Promise.resolve(result.data)
        },
        error => {
            //异步状态转化为失败状态
            return Promise.reject(error);
        }
    )
    export  default instance;
    
    新建接口文件如 api.js
    import request from '@/util/request'
    //菜单列表
    export function getIndex(){
        return request({
            url:'/fast/api/getApiList',
            method:'get'
        })
    }
    
    在vue中使用
    <script setup>
    import {getIndex} from "@/api";
    import {ref} from "vue";
    const  data=ref();
    function getList(){
      getIndex().then(res=>{
        data.value=res
      })
    }
    getList()
    </script>
    <template>
      {{data}}
    </template>
    <style scoped>
    </style>
    
  2. 跨域解决
    修改request.js文件
import axios  from "axios";
//代理地址
const baseURL='/dev-api';
const instance = axios.create({baseURL});
//响应拦截器
instance.interceptors.response.use(
    result=>{
        return Promise.resolve(result.data)
    },
    error => {
        //异步状态转化为失败状态
        return Promise.reject(error);
    }
)
export  default instance;

修改 vite.config.js文件

export default defineConfig({
  plugins: [vue()],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  },
  // 跨域代理配置  将地址 http://localhost:88/api 转换为 http://localhost:8080/test
  server: {
    port: 88,
    host: true,
    open: true,
    proxy: {  //1. 将本/api 地址转换为  http://localhost:8080/api
      '/dev-api': {
        target: 'http://localhost:8080', //服务器接口地址
        changeOrigin: true,
        //2.将 /api 路径替换为 /test
        rewrite: (p) => p.replace(/^\/dev-api/, '/test')
      }
    }
  },
})

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值