Fastapi 简明教程

FastAPI - CORS

Cross-Origin Resource Sharing (CORS) 是当一个运行在一个客户浏览器上的前端应用程序尝试通过 JavaScript 代码与后端进行通信时的情况,并且后端处于与前端不同的“源”中。这里的源是协议、域名和端口号的组合。结果,[role="bare"] [role="bare"]http://localhost 和 [role="bare"] [role="bare"]https://localhost 具有不同的来源。

如果具有一个来源的 URL 的浏览器发送请求以执行来自另一个来源的 JavaScript 代码,则浏览器将发送一个 OPTIONS HTTP 请求。

如果后端通过发送适当的标题来授权来自这种不同来源的通信,它将允许前端中的 JavaScript 向后端发送其请求。为此,后端必须有一个“允许的来源”列表。

若要显式指定允许的来源,请导入 CORSMiddleware 并将来源列表添加到应用程序的中间件。

from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
app = FastAPI()
origins = [
   "http://192.168.211.:8000",
   "http://localhost",
   "http://localhost:8080",
]
app.add_middleware(
   CORSMiddleware,
   allow_origins=origins,
   allow_credentials=True,
   allow_methods=["*"],
   allow_headers=["*"],
)
@app.get("/")
async def main():
   return {"message": "Hello World"}