上一篇
场景引入:
凌晨2点,程序员小张盯着浏览器控制台鲜红的CORS error
抓狂——前端Vue
跑在localhost:8080
,后端SpringBoot
服务在localhost:8088
,简单一个登录接口死活调不通!🤯 隔壁老李幽幽飘过:“又卡跨域了?试试反向代理啊…”
前端可选Vue/React,后端可用Java/Go/PHP
前端静态资源扔CDN,后端服务集群化
Access-Control-Allow-Origin' header is missing
方案 | 适用场景 | 优缺点 |
---|---|---|
CORS头配置 | 生产环境 | 需后端配合,安全性高但配置复杂 |
JSONP | 老旧系统兼容 | 仅支持GET,安全性低 |
Nginx反向代理 | 企业级部署 | 高性能,需运维知识 |
Vue反向代理 | 本地开发 | 零配置快速上手✨ |
npm create vue@latest # 选择TypeScript + Pinia(2025标配)
vite.config.ts
import { defineConfig } from 'vite' export default defineConfig({ server: { proxy: { '/api': { target: 'http://localhost:8088', // 你的后端地址 changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, '') } } } })
// 前端代码(实际请求→ http://localhost:5173/api/login) fetch('/api/login', { method: 'POST', body: JSON.stringify({ username: 'admin' }) })
# .env.development VITE_API_BASE=/api
// 动态配置 proxy: { [import.meta.env.VITE_API_BASE]: { target: import.meta.env.VITE_BACKEND_URL } }
Proxy不生效?
target
是否含http://
生产环境怎么办?
location /api { proxy_pass http://backend-server; }
接口404错误
使用Swagger/YAPI定义接口规范
// 示例:使用Mock.js Mock.mock('/api/user', { 'id': '@id', 'name': '@cname' })
/api/v1/login
:
跨域问题就像编程路上的“成人礼”💪,掌握反向代理后,你会发现自己再也不是那个被CORS折磨到秃头的新手,快去享受前后端分离的开发快感吧!(记得凌晨2点后调低屏幕亮度保护发际线哦)🌙
本文技术要点经2025年7月主流技术栈验证,适用于Vue3 + Vite4+环境
本文由 郏燕 于2025-07-31发表在【云服务器提供商】,文中图片由(郏燕)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/494716.html
发表评论