2xx · Éxito
Código HTTP 204 No Content: qué significa
El código 204 No Content indica que la petición ha funcionado y que la respuesta no tiene cuerpo. Es la respuesta habitual a un DELETE o a un PUT que actualiza un recurso cuando no hace falta devolver nada.
Qué significa el código 204
Con 204 el servidor dice "hecho, no hay nada más que contarte". El navegador no cambia de página y el cliente no debe intentar leer un cuerpo.
También es la respuesta típica de los preflight CORS (peticiones OPTIONS) y de endpoints de analítica que solo registran un evento.
Cuándo aparece
- DELETE de un recurso que se ha borrado correctamente.
- PUT/PATCH sin necesidad de devolver el recurso actualizado.
- Respuestas a peticiones OPTIONS (CORS).
Qué tener en cuenta
- No envíes cuerpo con un 204: algunos clientes fallan al intentar parsearlo como JSON.
- Si tu cliente espera JSON siempre, devuelve 200 con {} en lugar de 204.
Configuración y comandos
nginx: respuesta rápida a un preflight CORS
nginx
if ($request_method = OPTIONS) {
add_header Access-Control-Allow-Origin "https://ejemplo.com";
add_header Access-Control-Allow-Methods "GET, POST, DELETE";
add_header Access-Control-Allow-Headers "Content-Type, Authorization";
return 204;
}Ejemplo de respuesta
http
DELETE /api/notas/17 HTTP/1.1
HTTP/1.1 204 No ContentHerramientas para comprobarlo
Preguntas frecuentes
¿Por qué mi fetch() da error con un 204?
Porque el código llama a response.json() y no hay cuerpo que leer. Comprueba response.status === 204 antes de parsear.