Vite+Vue 用axios发送请求时踩了一些坑,记录一下

  1. 无法导入axios 。 Failed to resolve import “axios” from “src/App.vue”. Does the file exist?
    解决:通过npm install axios --save安装axios后,需要重启开发服务器

  2. (可选,我没做这一步就成功了)如果上述步骤都没有解决问题,可以尝试清除 Vite 的缓存并重新启动开发服务器:

rm -rf node_modules/.vite
npm run dev
  1. 跨域错误。 Access to XMLHttpRequest at ‘xxx’ from origin ‘http://localhost:5173’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.
    解决:使用代理 (Proxy) 来绕过 CORS 问题。
    Vite 提供了一个简单的代理功能,可以在 vite.config.js 中进行配置:
    (1)在 vite.config.js 中添加代理配置:
// vite.config.js
export default {
  server: {
    proxy: {
      '/api': {
        target: 'https://api.example.com', // 你要访问的 API 的地址
        changeOrigin: true,
        secure: false, // 如果是 HTTPS 请求,设置为 false 可以避免一些证书错误
        rewrite: (path) => path.replace(/^\/api/, '')  // 你可以选择重写路径
      }
    }
  }
}

(2)然后,在你的 Vue 代码中,修改请求的路径,使用代理前缀,例如:

axios.get('/api/your-endpoint')  // 现在它会被代理到 https://api.example.com/your-endpoint

** '/api/'是路由开头(具体名称是服务端定的,或者重写),通过这个来区分哪个请求需要走代理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值