参考:
fastAPI中的跨域问题解决_fastapi跨域处理-CSDN博客
遇到问题:
本地调试HTTP接口时, 本地页面调用本地API接口,会报错:
Access to XMLHttpRequest at 'http://localhost:8000/faceid/addUser' from origin 'http://127.0.0.1:5500' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
example003.html:69 Q {message: 'Network Error', name: 'AxiosError', code: 'ERR_NETWORK', config: {…}, request: XMLHttpRequest, …}
xhr.js:258
POST http://localhost:8000/faceid/addUser net::ERR_FAILED
后台服务需要加入允许跨域访问的 代码:
from fastapi.middleware.cors import CORSMiddlewareapp = FastAPI()# 这里配置支持跨域访问的前端地址
origins = ["http://localhost", # 带端口的"http://localhost:8000", # 不带端口的"http://localhost:5500"
]#将配置挂在到app上
app.add_middleware(CORSMiddleware,# 这里配置允许跨域访问的前端地址allow_origins=["*"],# 跨域请求是否支持 cookie, 如果这里配置true,则allow_origins不能配置*allow_credentials=False,# 支持跨域的请求类型,可以单独配置get、post等,也可以直接使用通配符*表示支持所有allow_methods=["*"],allow_headers=["*"],
)