Flask怎么解决跨域CORS报错问题

梦晨小哥_5680

梦晨小哥_5680

2026-09-21

363人浏览

原创

cors(app)未生效主因是初始化顺序错误、蓝图未单独注册、预检options响应缺失或nginx吞头;必须在app创建后、路由注册前执行,蓝图需显式调用cors(blueprint),且nginx须透传access-control-allow-*头。

flask怎么解决跨域cors报错问题

Flask 的 CORS 报错不是插件没装,而是 flask-cors 没真正管到那个请求——90% 的问题出在初始化时机、蓝图遗漏、预检响应缺失或反向代理吞头。

为什么 CORS(app) 写了却没生效

最常见原因是它被放在了所有 @app.route 之后,或者塞进了 if __name__ == '__main__': 块里。Flask-CORS 只会对它执行之后注册的路由生效;而你的视图函数早已注册完毕,插件根本没接管过去。

  • CORS(app) 必须紧跟在 app = Flask(__name__) 后面,且在任何 @app.routeregister_blueprint() 之前
  • 用了蓝图(Blueprint)?CORS(app) 不会自动覆盖蓝图内的路由,必须显式调用 CORS(my_blueprint) 或对单个函数加 @cross_origin()
  • 开发时开了 debug=True?热重载可能启了多个进程,改完配置只加载进一个,另一个旧进程还在跑——重启整个服务才能确认是否真生效

origins="*"supports_credentials=True 互斥

只要前端发请求时带了 credentials: 'include'(比如传 cookie 或 Authorization 头),浏览器就会直接拒绝响应,连错误细节都不给全,控制台只显示模糊的 “CORS error”。

Flask 3.0.2
Flask 3.0.2

Flask 3.0.2 是 Flask 的官方历史稳定版本,下载地址使用 PyPI wheel 包直链,适合指定版本安装和项目环境复现。

下载
  • 开发阶段用明确列表:origins=["http://localhost:3000", "http://127.0.0.1:3000"]
  • 生产环境必须写完整 HTTPS 域名,不含端口:origins=["https://myapp.com", "https://admin.myapp.com"]
  • 如果必须支持凭据,origins 不能是 "*",且响应头中必须有 Access-Control-Allow-Credentials: true

POST/PUT/DELETE 卡在 OPTIONS 预检

Axios 或 fetchContent-Type: application/json 时,浏览器强制走预检(OPTIONS 请求)。如果后端没正确响应这个 OPTIONS,真实请求根本不会发出。

  • 别手动写 @app.route("/xxx", methods=["OPTIONS"])——这会覆盖 flask-cors 自带的处理逻辑
  • 全局配置要显式包含 OPTIONSCORS(app, methods=["GET", "POST", "PUT", "DELETE", "OPTIONS"])
  • @cross_origin 装饰器时也得传 methods 参数,例如:@cross_origin(origins=["http://localhost:3000"], methods=["POST", "OPTIONS"])
  • 打开浏览器 Network 面板,确认第一个请求是 OPTIONS、状态码为 200、响应头里有 Access-Control-Allow-MethodsAccess-Control-Allow-Headers

Nginx/uWSGI 部署后 CORS 失效

本地跑得好好的,一上服务器就跨域失败——大概率是 Nginx 把 Access-Control-Allow- 开头的响应头直接吞掉了,浏览器根本收不到。

  • Nginx 配置中必须显式透传这些头:add_header 'Access-Control-Allow-Origin' '$sent_http_access_control_allow_origin' always;(注意 always,否则不作用于 4xx/5xx 响应)
  • 还要透传其他关键头:add_header 'Access-Control-Allow-Methods' '$sent_http_access_control_allow_methods' always;add_header 'Access-Control-Allow-Headers' '$sent_http_access_control_allow_headers' always;
  • 如果用了 uWSGI,确认 uwsgi_pass 后没有额外的中间层过滤响应头

真正难调试的点往往不在代码本身,而在启动顺序、蓝图边界、预检响应完整性、以及反向代理对响应头的静默截断——这几个地方漏掉任何一个,flask-cors 就等于没配。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
flask框架如何搭建
flask框架如何搭建

搭建步骤:1、安装Python和Pip;2、创建虚拟环境;3、安装Flask;4、创建Flask应用;5、运行应用;6、访问应用。想了解更多flask框架的相关内容,可以阅读本专题下面的文章。

2024.06.27

2835

8

Python Flask框架
Python Flask框架

本专题专注于 Python 轻量级 Web 框架 Flask 的学习与实战,内容涵盖路由与视图、模板渲染、表单处理、数据库集成、用户认证以及RESTful API 开发。通过博客系统、任务管理工具与微服务接口等项目实战,帮助学员掌握 Flask 在快速构建小型到中型 Web 应用中的核心技能。

2025.08.25

4204

10

Python Flask Web框架与API开发
Python Flask Web框架与API开发

本专题系统介绍 Python Flask Web框架的基础与进阶应用,包括Flask路由、请求与响应、模板渲染、表单处理、安全性加固、数据库集成(SQLAlchemy)、以及使用Flask构建 RESTful API 服务。通过多个实战项目,帮助学习者掌握使用 Flask 开发高效、可扩展的 Web 应用与 API。

2025.12.15

256

16

Vibeknow在线使用入口合集
Vibeknow在线使用入口合集

本专题汇总了Vibeknow在线创作视频的官方入口及网页版使用教程,涵盖PPT、PDF、Word等文档一键转讲解视频的核心操作,并整理了免费版水印规则与手机端浏览器访问指南,助你快速将知识内容视频化。

2026.09.21

0

20

NumPy随机数文件读写与dtype数据类型
NumPy随机数文件读写与dtype数据类型

本专题整理 NumPy 随机数、文件读写与 dtype 数据类型相关教程,覆盖 Generator/random、随机数种子、正态分布采样、npy/npz/CSV/TXT 保存读取、loadtxt/savetxt、memmap、大文件处理、astype 类型转换、结构化 dtype、整数溢出和精度丢失等场景。

2026.09.21

0

24

NumPy矩阵运算与线性代数计算
NumPy矩阵运算与线性代数计算

本专题整理 NumPy 矩阵运算与线性代数计算相关教程,覆盖矩阵乘法、dot 与 @ 运算符、逆矩阵、行列式、特征值与特征向量、SVD、线性方程组、欧氏距离、矩阵分解和大规模矩阵性能优化等内容,帮助读者掌握 np.linalg 与矩阵计算实战。

2026.09.21

0

20

NumPy广播机制数学运算与统计分析
NumPy广播机制数学运算与统计分析

本专题整理 NumPy 广播机制、数组数学运算与统计分析相关教程,覆盖广播规则、维度对齐、矩阵与数组加减除法、向量化计算、均值方差、分位数、中位数、直方图和 unique 频次统计等场景,帮助读者掌握 ndarray 高效计算与统计处理方法。

2026.09.21

0

17

NumPy数组创建索引切片与数据选择
NumPy数组创建索引切片与数据选择

本专题整理 NumPy 数组创建、索引、切片与数据选择相关教程,覆盖 np.array、zeros/ones、多维数组形状、基础切片、花式索引、布尔索引、条件筛选、视图与副本等常用场景,帮助读者系统掌握 ndarray 数据构造与高效提取方法。

2026.09.21

0

12

Aionclaw智能助手介绍
Aionclaw智能助手介绍

本专题汇总了AionClaw(AI龙虾助手)的功能介绍与在线使用入口。AionClaw是杭州趣猿人工智能有限公司推出的桌面级AI智能体,能直接在电脑上读写文件、运行脚本、操作浏览器,自动交付Word、PPT、Excel等成品。

2026.09.20

20

13

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Flask-Migrate数据库迁移文档
Flask-Migrate数据库迁移文档

共0课时 | 0人学习

Flask官方快速入门文档
Flask官方快速入门文档

共0课时 | 0人学习