Proxy Development Requests with Create-React-App
Create-React-App supports an optional proxy option in development, which can be added to your package.json. In my case, I was dealing with CORS issues locally because our frontend and backend run on the same server in production, but our development setup is different.
My backend was running on http://localhost:4000, and frontend on http://localhost:3000.
In my package.json, I specified that I wanted to proxy my requests to backend development server:
{
...
"proxy": "http:localhost:4000"
...
}
Then I changed my fetch call to be a relative URL:
// Was fetch("http://localhost:4000/api/graph", ...params)
fetch("/api/graphql")
Create-react-app will recognize that this path is not a static asset and "will proxy the request (http://localhost:4000/api/graphql) as a fallback".
Create-React-App Docs - Proxying API Requests in Development
Tweet