내 React 프런트엔드가 FastAPI 백엔드의 POST 응답을 표시하지 않는 이유는 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-12 12:17:02
원래의
567명이 탐색했습니다.

Why Isn't My React Frontend Displaying POST Response from My FastAPI Backend?

React가 FastAPI 백엔드의 POST 응답을 표시하지 않음: CORS 문제 해결

React에서 HTTP에서 JSON 데이터를 검색하려고 합니다. 다른 포트에서 실행되는 FastAPI 백엔드에 대한 POST 요청입니다. 그런데 프런트엔드가 예상한 대로 응답을 렌더링하지 않습니다.

CORS 이해

그 이유는 CORS(Cross-Origin Resource Sharing) 때문입니다. CORS는 브라우저가 프로토콜, 도메인 및 포트에 의해 정의된 다양한 출처의 리소스(예: JSON 데이터)에 요청을 보내는 것을 제한하는 보안 메커니즘입니다. 귀하의 경우, 프런트엔드(localhost:3000)는 다른 출처인 백엔드(localhost:8000)의 리소스에 액세스하려고 합니다.

FastAPI에서 CORS 활성화

이 문제를 해결하려면 FastAPI 애플리케이션에서 CORS를 활성화해야 합니다. 이는 다음과 같이 구성된 CORSMiddleware를 사용하여 달성할 수 있습니다.

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

app = FastAPI()
app.add_middleware(
    CORSMiddleware,
    allow_origins=["YOUR_FRONTEND_ORIGIN"],
    allow_credentials=True,
    allow_methods=["*"],  # Allow all HTTP methods
    allow_headers=["*"],  # Allow all HTTP headers
)
로그인 후 복사

"YOUR_FRONTEND_ORIGIN"을 React 프런트엔드의 원본(일반적으로 "http://localhost:3000")으로 바꿉니다. 이렇게 하면 백엔드가 CORS 오류 없이 프런트엔드의 POST 요청에 응답할 수 있습니다.

위 내용은 내 React 프런트엔드가 FastAPI 백엔드의 POST 응답을 표시하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿