在不同机器上运行 FastAPI 后端和 Next.js 前端时同一本地网络,从前端访问后端可能会遇到问题。
要允许来自不同机器的访问,请在 uvicorn 命令中将主机标志设置为 0.0.0.0:
uvicorn main:app --host 0.0.0.0 --port 8000
这允许后端监听该主机的所有 IPv4 地址本地计算机。
确保防火墙允许外部访问指定端口。为 Python 创建入站防火墙规则,通常在允许 Python 通过防火墙进行通信时自动添加。
配置 CORS 中间件以启用跨源请求:
origins = ['http://localhost:3000','http://192.168.178.23:3000'] app.add_middleware( CORSMiddleware, allow_origins=origins, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], )
在 JavaScript 获取请求中,使用与输入相同的域名浏览器的地址栏,以及后端的端口号:
fetch('http://192.168.178.23:8000/people', {...
在同一台计算机上本地测试时,使用带有正确域名的 fetch (例如,http://127.0.0.1:8000/people )或相对路径(例如“/people”),当前端和后端都在相同的端口和 IP 上运行时。如果前端的来源与后端不同,请将其添加到 CORS 设置中。
以上是如何从同一本地网络上的不同计算机访问我的 FastAPI 后端?的详细内容。更多信息请关注PHP中文网其他相关文章!