讲师中心 微信公众号
AI工具推荐 视频效率加速

Python后端怎么接前端Vue_前后端分离API联调与跨域配置

胖晨姑娘_4104

胖晨姑娘_4104

发布时间:2026-03-11 16:25:02

|

535人浏览过

|

来源于php中文网

原创

CORS错误需先确认预检请求是否被后端正确响应:带自定义header或非标准Content-Type会触发OPTIONS请求,后端必须返回200及Access-Control-Allow-Origin等头;Django需精确配置CORS_ALLOWED_ORIGINS,Flask需显式支持OPTIONS方法;Vue代理仅限开发环境,路径重写和请求前缀必须匹配;后端应统一响应格式,前端需适配字段级错误结构;Cookie认证须前后端同时配置withCredentials和Access-Control-Allow-Credentials:true且Origin不能为*。

python后端怎么接前端vue_前后端分离api联调与跨域配置

Vue 发请求被浏览器拦住:CORS 错误怎么快速定位

前端报 CORS policy: No 'Access-Control-Allow-Origin' header,不是后端没写接口,是浏览器在发 OPTIONS 预检请求时被拒了。Vue 调用 axios.post 或 fetch 时只要带自定义 header(比如 Authorization)、或 Content-Type 不是 application/x-www-form-urlencoded、multipart/form-data、text/plain 中的任一个,就会触发预检——这时候后端必须响应 OPTIONS 请求,且返回正确的 CORS 头。

  • 先用 curl 模拟预检:curl -X OPTIONS -H "Origin: http://localhost:5173" -H "Access-Control-Request-Method: POST" -I http://127.0.0.1:8000/api/login,看是否返回 200 和 Access-Control-Allow-Origin
  • Django 用户别只依赖 djangorestframework-cors-headers,确认 CORS_ALLOW_ALL_ORIGINS = False 时,CORS_ALLOWED_ORIGINS 必须精确匹配前端地址(http://localhost:5173,不能漏协议或端口)
  • Flask 用户慎用 @cross_origin() 装饰单个路由——它默认不处理 OPTIONS,得手动加 methods=["GET", "POST", "OPTIONS"],或直接用 flask-cors 全局注册

Vue 开发服务器代理失效:为什么 /api 转发没走通

Vue CLI 或 Vite 的 proxy 是开发阶段用的,本质是本地 dev server 做反向代理,不解决生产跨域,也不影响后端真实部署行为。失效常见于路径重写规则写错、代理目标未启动、或 Vue 请求 URL 没走代理配置的前缀。

  • Vite 中 vite.config.ts 的 server.proxy 写法:"/api": { target: "http://127.0.0.1:8000", changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, "") }——注意 rewrite 是必须的,否则后端收不到 /login,而是收到 /api/login
  • Vue 请求必须以 /api 开头,比如 axios.get("/api/users");写成 axios.get("http://127.0.0.1:8000/api/users") 就绕过代理,直连后端,跨域照常发生
  • 代理只在 vite dev 下生效,build 后的静态文件部署到 Nginx,就得靠 Nginx 配置 location /api { proxy_pass http://backend; },和前端代码无关

后端返回数据格式对不上:Vue 解析 400/500 响应体失败

Vue 默认把非 2xx 响应当成错误,进 catch,但很多 Python 后端(尤其 Django REST Framework)在验证失败时返回 400 + JSON body,而前端如果只读 error.response.data 却没检查结构,容易报 Cannot read property 'message' of undefined。

Python Hardener
Python Hardener

通过完整的安全审查、代码整洁重构、健壮的错误处理、正确的日志记录以及完整的文档字符串覆盖,强化 Python 脚本。

下载
  • Django REST Framework 默认验证错误返回类似 {"email": ["Enter a valid email address."]},不是扁平的 {message: "..."} ,前端要适配字段级结构,别硬取 err.message
  • FastAPI 默认 422 错误返回 detail 字段,内容是 list,比如 [{"loc":["body","age"],"msg":"field required","type":"value_error.missing"}],需遍历解析,不能当字符串 alert
  • 统一响应包装很重要:Python 后端建议所有接口都走同一响应格式(如 {"code": 0, "data": {}, "msg": ""}),避免前端反复判断 if (res.data.detail) 这类分支

Cookie 登录态传不过去:withCredentials 怎么配才生效

Vue 调用需要登录态的接口时,如果后端用 Session/Cookie 认证,必须显式开启凭证传递,否则浏览器根本不会发 Cookie,后端也拿不到 sessionid。

立即学习“Python免费学习笔记(深入)”;

  • axios 要设 withCredentials: true(全局或单次请求),Vue 项目里通常在 main.ts 配置:axios.defaults.withCredentials = true
  • 后端 CORS 响应头必须包含 Access-Control-Allow-Credentials: true,且此时 Access-Control-Allow-Origin 不能为 *,必须指定具体域名,比如 http://localhost:5173
  • Django 用户注意:还要开 SESSION_COOKIE_SAMESITE = None 和 SESSION_COOKIE_SECURE = True(HTTPS 环境下),开发时若用 HTTP,得设 SESSION_COOKIE_SECURE = False,否则浏览器拒绝发送 Cookie

跨域问题真正麻烦的从来不是配一行 CORS,而是前后端对“谁该处理预检”“谁该携带凭证”“错误体长什么样”的隐含假设不一致。多抓几次浏览器 Network 里的请求头和响应头,比查文档更快定位卡点。

热门AI工具

更多
花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

小橡皮AI

一款AI工具,主要用于小橡皮一键去AI味,将机器味重的内容改得更有活人感,防止因为 AI 内容被平台打上 AI 标签,以及限流,适合需要提升相关任务效率的用户。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2903

2023.08.11

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

7230

2024.03.19

后端的主要工作内容介绍
后端的主要工作内容介绍

后端是应用程序的服务端部分,负责核心任务,如数据库交互、业务逻辑处理和响应客户端请求。想了解更多后端的相关内容,可以阅读本专题下面的文章。

6766

2024.03.19

python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2903

2023.08.11

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

6323

2023.10.09

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

7230

2024.03.19

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

7078

2024.03.22

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

1003

2024.05.22

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

0

2026.11.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn