news 2026/4/18 11:59:57

Python中CORS 跨域中间件的配置和作用原理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python中CORS 跨域中间件的配置和作用原理

一、先定位是什么:

CORS(Cross-Origin Resource Sharing)跨域资源共享,是由浏览器和服务端共同遵循的、规范跨域 HTTP 请求行为的安全机制

它的核心作用是在浏览器 “同源策略” 的安全框架下,允许服务端通过配置响应头明确声明 “哪些源(域名 + 端口)、哪些操作(方法 / 头信息)可以跨域访问自身资源”,从而解决同源策略过于严格导致的合法业务跨域需求问题。

二、为什么?

就是因为浏览器本身有一个叫同源策略的安全机制:

当前端页面的协议、域名、端口与后端 API 的协议、域名、端口不一致时,浏览器会在接收后端响应后拦截数据;而 CORS(跨域资源共享)通过服务端配置响应头,让浏览器判定该跨域请求合法,从而放行响应数据,解决同源策略导致的跨域拦截问题。

三、怎么解决?

CORS 通过让服务器在 HTTP 响应头中注入标准化的 CORS 响应头来告诉浏览器:哪些源(Origin)哪些操作可以跨域访问资源

而不同语言配置 CORS 响应头的方法都不一样,java中是通过实现WebMvcConfigurer接口重写addCorsMappings方法来实现的。而我们的python则使用
跨域资源共享中间件:CORSMiddleware

它的的核心作用就是在HTTP响应中注入CORS相关头信息,让浏览器放行跨域请求。

from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware app = FastAPI() # 配置允许跨域的源(生产环境替换为具体域名) origins = [ "http://localhost:3000", # 前端本地开发地址 "https://www.xxx.com", # 生产环境前端域名 "https://admin.xxx.com", # 多域名支持 ] # 添加跨域中间件 app.add_middleware( CORSMiddleware, allow_origins=origins, # 允许的跨域源(列表形式,支持多个) allow_credentials=True, # 是否允许携带 Cookie(关键,默认 False) allow_methods=["*"], # 允许的请求方法(* 表示所有,如 GET/POST/PUT/DELETE) allow_headers=["*"], # 允许的请求头(* 表示所有,如 Token/Content-Type) max_age=3600, # 预检请求(OPTIONS)的缓存时间(秒),避免频繁预检 ) # 测试接口 @app.get("/api/test") async def test_cors(): return {"msg": "FastAPI 跨域请求成功"} if __name__ == "__main__": import uvicorn uvicorn.run(app, host="0.0.0.0", port=8000)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 17:42:11

Excalidraw企业版功能预测:哪些特性值得期待?

Excalidraw企业版功能预测:哪些特性值得期待? 在现代技术团队的日常协作中,一张“随手画”的草图往往比千言万语更有效。无论是产品原型的快速勾勒、系统架构的即兴推演,还是敏捷会议中的思维碰撞,可视化表达已成为知识…

作者头像 李华
网站建设 2026/4/17 14:48:02

2、Windows XP 使用指南:日常操作与程序管理

Windows XP 使用指南:日常操作与程序管理 1. 基础文件操作 1.1 创建新文件夹 在日常使用中,我们常常需要创建新的文件夹来存放文件或程序。以下是创建新文件夹的具体步骤: 1. 从 Windows 桌面双击“我的文档”或“我的电脑”文件夹窗口。 2. 点击驱动器,然后找到并点击…

作者头像 李华
网站建设 2026/4/17 13:50:23

20、Windows系统实用工具全解析

Windows系统实用工具全解析 1. 娱乐相关工具 1.1 声音录制器(Sound Recorder) 声音录制器允许你通过连接到声卡的麦克风录制并保存声音文件。操作步骤如下: - 录制:点击带有红点的“Record”按钮开始录制声音。 - 停止:点击带有矩形的“Stop”按钮停止录制。 - 播放…

作者头像 李华
网站建设 2026/4/18 3:25:57

7、Windows XP使用指南:文件查找、打印、传真与扫描全攻略

Windows XP使用指南:文件查找、打印、传真与扫描全攻略 在使用Windows XP系统的过程中,我们常常会遇到各种问题,比如找不到丢失的窗口、文件,打印效果不佳,传真和扫描操作遇到困难等。本文将为你详细介绍如何解决这些常见问题,让你的Windows XP使用更加顺畅。 一、查找…

作者头像 李华
网站建设 2026/4/17 7:16:55

20、Windows XP使用技巧与后续版本展望

Windows XP使用技巧与后续版本展望 一、Windows XP十大实用技巧 (一)遇到问题,右键点击 在Windows系统中,常常会遇到一些神秘的图标、菜单项和程序,让人不知如何操作。这时,记住一个简单的技巧:当你有疑问时,右键点击。当你右键点击某个项目时,Windows会弹出一个便…

作者头像 李华
网站建设 2026/4/18 3:34:54

差分+扫描线|

lc1851有点像双指针的意思class Solution { public:vector<int> minInterval(vector<vector<int>>& intervals, vector<int>& queries) {int n intervals.size(), m queries.size();sort(intervals.begin(), intervals.end());using pii pa…

作者头像 李华