FastAPI - CORS

Cross-Origin Resource Sharing (CORS) 是指在一个客户端浏览器上运行的前端应用程序试图通过 JavaScript 代码与后端通信,而后端与前端位于不同的"来源"的情况。 这里的来源是协议、域名和端口号的组合。 因此,http://localhost 和 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"}