FastAPI - CORS


跨源资源共享(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"}