Estoy haciendo una llamada AJAX para establecer el nombre de usuario. Si el nombre de usuario ya está tomado, ¿qué código HTTP debo devolver?¿Qué código de error HTTP devolver para el nombre ya tomado?
Respuesta
No hay un código HTTP para el nombre ya tomado. Por favor, consulte List of HTTP Status Codes.
Si está utilizando llamadas AJAX para establecer el nombre de usuario, ¿por qué no simplemente muestra el error en HTML? Esto es más fácil de usar ya que los visitantes sabrán lo que significa el error real, en lugar de ver un código 4XX.
Iba a capturar el código 4xx con jquery y mostrar un mensaje de error fácil de usar. – Ryan
no está limitado a detectar cosas con códigos de estado http. puede ver los mensajes de error en su lugar. Compruebe la [jQuery API en $ .ajax] (http://api.jquery.com/jQuery.ajax/). El controlador de "éxito" debería ayudarlo, solo verifique los ejemplos en la API. – rationalboss
Como comenté a continuación, 200 es para tener éxito. Los errores al completar las solicitudes garantizan un código de estado de error. Espero que Ryan no haya salido de su camino para regresar a los 200 cuando la solicitud ha fallado; esa es una mala idea. –
Elegiría 422 Entidad no procesable. Los desarrolladores de Lot's of Rails lo utilizan para todos los errores de validación.
Y sí, es totalmente apropiado evaluar el estado del error y representar el mensaje de error con javascript. Esto es especialmente útil si usa las mismas acciones para una API. Luego, sus solicitudes de ajax acceden a la misma API que expondría a otros desarrolladores.
puede usar 409 Conflict.otherwise 200 con mensaje de error.
No hay regla aquí, depende de usted. Sin embargo, como dijo @rationalboss, tiene sentido devolver 200 con un mensaje ya que la solicitud HTTP ha tenido éxito, el error no está relacionado con la solicitud.
400 errores significan que la solicitud en sí misma no era correcta de alguna manera, como verbo incorrecto o parámetros faltantes.
La pregunta aquí es acerca de la interpretación, tanto de los clientes de software como de los humanos, y sería mejor evitar los códigos de error cuando no hay un error de HTTP.
No estoy de acuerdo, pero como dijo, es una cuestión de opinión. Para mí, un error al completar la solicitud garantiza un código de error. No quiero que un cliente revise los detalles en la respuesta para saber que algo estuvo mal. Si regreso bien, significa que ha tenido éxito. Cualquier error que complete la solicitud debe estar dentro de la categoría 400, a menos que sea una excepción de servidor real, caso en que vaya al 500, pero nunca a 200. –
- 1. Qué código HTTP devolver para el protocolo incorrecto
- 2. ¿Qué código de Http debo devolver para "Cosa no encontrada"?
- 3. jQuery comprueba la base de datos mysql si el nombre de usuario ya está tomado
- 4. Código de error HTTP 505
- 5. Devolver error HTTP desde la interfaz RESTeasy
- 6. Tutorial de Rails 3 Capítulo 11 "Error de validación: el correo electrónico ya se ha tomado" error
- 7. ¿Qué código de respuesta HTTP para "Este correo electrónico ya está registrado"?
- 8. ¿Cuál es el código de estado HTTP más apropiado para devolver si falta un encabezado requerido?
- 9. Código de estado HTTP para datos incorrectos
- 10. ¿Qué debe devolver un servicio JSON por error/error?
- 11. viene el nombre de un código de estado HTTP importa
- 12. Estado de HTTP adecuado para devolver para intentos de piratería
- 13. Cómo especificar un código de error HTTP?
- 14. Código de estado HTTP para "éxito con errores"?
- 15. ¿Por qué aparece el error "error: nombre de tipo desconocido 'virtual'" cuando intento compilar este código?
- 16. ¿Por qué fopen() o open() usan errno en lugar de solo devolver el código de error?
- 17. Nombre para HTTP Request + Response
- 18. ¿Por qué display_errors cambia el código de estado HTTP?
- 19. ¿Cuál es el código de estado HTTP apropiado que debe devolver un servicio API REST para una falla de validación?
- 20. PHP error grave inusual con "nombre ya está en uso"
- 21. obteniendo el error java.io.IOException: El servidor devolvió el código de respuesta HTTP: 401 para
- 22. Devolver JSON con código de estado de error MVC
- 23. svn Error: ya existe un directorio versionado del mismo nombre
- 24. URLConnection Error - java.io.IOException: El servidor devolvió el código de respuesta HTTP: 400 para la dirección URL
- 25. Tiempo tomado por el comando `less` para mostrar la salida
- 26. Error de IIS 7.0 Error HTTP 500.19 - Error interno del servidor (Código de error 0x80070003)
- 27. Código de estado HTTP para la autenticación faltante
- 28. Nombre de usuario en el encabezado HTTP para SSO
- 29. ¿Qué es el código de estado HTTP 000?
- 30. ¿Por qué es mejor lanzar una excepción en lugar de devolver un código de error?
Posible duplicado de [¿Qué código de respuesta HTTP para "Este correo electrónico ya está registrado"?] (Http://stackoverflow.com/questions/9269040/which-http-response-code-for-this-email-is- ya registrado) –