⚠️Resposta em HTML (Login ou Página de Erro)

Se ao fazer uma requisição para a API pública você receber uma página HTML no lugar da resposta esperada em JSON, isso geralmente acontece por falta de um cabeçalho necessário.


🔍 Causa

A API interpreta que a requisição não foi feita via JavaScript/AJAX, e por isso trata como uma requisição web comum, retornando uma página HTML (como tela de login, ou erro 500/404 renderizado).


✅ Solução

Adicione o cabeçalho abaixo em todas as requisições para a API pública:

X-Requested-With: XMLHttpRequest

Também certifique-se de estar incluindo o header de autenticação:

Authorization: Bearer {seu_token}

📦 Exemplo de headers completos:

Authorization: Bearer eyJ0eXAiOiJK...
X-Requested-With: XMLHttpRequest
Content-Type: application/json

🛠️ Ferramentas afetadas

  • Postman: Lembre-se de adicionar manualmente o X-Requested-With na aba Headers
  • curl ou scripts: Use a flag -H para definir o header:
curl -X POST https://sua-api... \
  -H "Authorization: Bearer {token}" \
  -H "X-Requested-With: XMLHttpRequest" \
  -H "Content-Type: application/json" \
  -d '{...}'

ℹ️ Por que isso acontece?

A plataforma usa mecanismos como o Laravel Sanctum e middlewares que diferenciam chamadas de navegador e de API. Quando o header X-Requested-With está presente, a requisição é tratada como API e responde corretamente com JSON.