Connecting the Halves
Both halves work. The join is where the time goes.
The usual culprits, all of them boring and all of them expensive to diagnose blind: CORS, cookies not being sent, a trailing slash, a field named first_name on one side and firstName on the other, dates as strings in one format and parsed as another, and a 404 page returned as HTML to something expecting JSON.
Agree the contract once and write it down. Field names, casing, date format, what an error looks like, what an empty result looks like.
The most valuable half hour in this phase is the one where you write out the exact JSON of one successful response and one error, and then make both sides match it. Doing it verbally means discovering the mismatch three days later inside a component.
Mark this lesson complete
Signed in, your progress follows you to every device.