首页  >  文章  >  后端开发  >  为什么我的 React UI 不显示来自 FastAPI 后端的 POST 响应?

为什么我的 React UI 不显示来自 FastAPI 后端的 POST 响应?

Barbara Streisand
Barbara Streisand原创
2024-11-08 16:45:02393浏览

Why is My React UI Not Displaying POST Response from a FastAPI Backend?

React UI 不显示来自 FastAPI 后端的 POST 响应

在这种情况下,React UI 预计会从 FastAPI 获取 JSON 文件后端位于“localhost:8000/todo”,并将数据作为 UI 的一部分呈现在“localhost:3000”处。但是,JSON 文件中的两项(“阅读一本书。”和“在城里骑自行车。”)未显示。

问题根本原因:

问题在于 FastAPI 后端缺少跨域资源共享 (CORS) 配置。 CORS 是一种允许一个来源的资源与另一个来源的资源共享的机制,在这种情况下这是必要的,因为 React UI 和 FastAPI 后端运行在不同的域上。

解决方案:

要在 FastAPI 后端启用 CORS,必须配置 CORSMiddleware。此中间件允许指定允许访问后端的来源、允许的方法和标头以及是否允许凭据。

示例实现:

from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware

app = FastAPI()

origins = ["http://localhost:3000", "http://127.0.0.1:3000"]

app.add_middleware(
    CORSMiddleware,
    allow_origins=origins,
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

在此示例中,CORSMiddleware 配置为允许来自两个源的请求:“http://localhost:3000”和“http://127.0.0.1:3000”。此外,它允许所有方法和标头并启用凭证共享。

注意:

请务必记住,起源是指协议、域和端口的组合。因此,即使具有不同端口的 localhost URL 也被视为不同的来源,并且需要 CORS 配置。

以上是为什么我的 React UI 不显示来自 FastAPI 后端的 POST 响应?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn