参考:
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 CORSMiddleware
app = 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=["*"],
)