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: XMLHttpRequestTambé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-Withna aba Headers - curl ou scripts: Use a flag
-Hpara 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.
