Unable to get 200 response from an API when a request is sent from localhost:3000


When we submit a POST request from localhost:3000 to an API, we got message below in the browser develop console with Status: 404.

x 'Access to fetch at '<Invoke URL>' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If any opaque response serves your needs, set the request mode to 'no-cors' to fetch the resource with CORS disabled'. x POST <invoke URL' net::ERR_FAILED 404

But when we submit the request to the same API from Postman, we got 200 response.

Where could be the problem? Thanks.

asked 10 months ago539 views
1 Answer
Accepted Answer

Postman does not implement the CORS restriction which are instead a native security browser mechanism.

You should implement CORS at server/backend layer, by allowing the caller (origin) to consume the rest endpoint.

profile picture
answered 10 months ago
  • Thanks Antonio. We enabled CORS at the resource level in the API. Is that not sufficient? What do you mean by 'implement CORS at server/backend layer'? The backend of the specific method is an ECS service with Node.js runtime.

  • I meant that for Instance, if you use express as backend server, you should look into enabling cors like this: https://expressjs.com/en/resources/middleware/cors.html. Try out and let me know ;)

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions