Avatar ·

Por que o erro CORS ocorre no JavaScript, mas no Postman a requisição funciona? Entendendo

Olá a todos! Sou um desenvolvedor front-end iniciante e tive um problema que me deixou perplexo. Estou escrevendo uma aplicação web simples em JavaScript puro. Preciso enviar uma requisição POST para uma API de terceiros (por exemplo, https://api.example.com/data) para obter alguns dados. No console do navegador, vejo o erro:
Access to fetch at 'https://api.example.com/data' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Aqui está meu código:
fetch('https://api.example.com/data', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ key: 'value' })
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Erro:', error));
Mas o mais estranho: quando copio a mesma URL, método e corpo da requisição no Postman — tudo funciona perfeitamente! O Postman retorna o esperado