news 2026/5/1 5:14:55

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/5/1 7:22:58

Excalidraw在敏捷开发中的10种创新应用场景

Excalidraw在敏捷开发中的10种创新应用场景 在远程协作成为常态、迭代周期不断压缩的今天,一个困扰无数敏捷团队的问题是:如何让想法“立刻可见”? 我们都有过这样的经历——会议中有人提出一个复杂的功能逻辑,大家听着点头称是…

作者头像 李华
网站建设 2026/5/1 7:19:36

耗子叔ARTS周计划挑战--第五周(2025/12/15--2025/12/21)

耗子叔ARTS周计划挑战–第五周(2025/12/15–2025/12/21) 前言 迭代,优化,平衡高效和轻松。 什么是ARTS? 一个算法题(Algorithm),读一篇英文文章(Review)&…

作者头像 李华
网站建设 2026/5/1 11:11:14

4、Windows XP基础操作指南

Windows XP基础操作指南 1. 窗口基础部件解析 Windows XP的窗口包含多种部件,熟悉这些部件能帮助我们更高效地使用系统。以下是对常见窗口部件的详细介绍: - 标题栏 :位于窗口顶部,显示当前运行的程序和正在处理的文件名称。例如,在记事本程序中,如果文件未保存命名…

作者头像 李华
网站建设 2026/5/1 8:43:22

5、Windows 文件与存储管理全攻略

Windows 文件与存储管理全攻略 在使用 Windows 系统时,文件和文件夹的管理是一项基础且关键的技能。它就像整理现实中的文件柜一样,能够让你的工作和生活更加有序。下面将详细介绍如何在 Windows 中进行文件和文件夹的管理,以及如何使用各种存储设备。 1. 了解“我的电脑”…

作者头像 李华
网站建设 2026/5/1 5:30:16

19、Windows XP使用帮助与常见问题解决指南

Windows XP使用帮助与常见问题解决指南 快速获取帮助 在使用Windows XP时,有时你能轻松获得系统的帮助,有时却会陷入困境,得不到明确答案。以下是一些快速获取有用信息的方法: 1. 按下F1键 :当你在Windows XP中感到困惑时,按下F1键或者从开始菜单中选择“帮助和支持…

作者头像 李华
网站建设 2026/5/1 10:03:52

Excalidraw如何防止敏感信息截图泄露?水印+权限双重防护

Excalidraw如何防止敏感信息截图泄露?水印权限双重防护 在企业数字化协作日益深入的今天,一张随手分享的白板截图,可能就包含了尚未发布的系统架构、核心业务流程或商业战略蓝图。这类信息一旦外泄,轻则造成内部混乱,重…

作者头像 李华