Yo uso hierro-ajax:
<iron-ajax id="postLoginForm" method="POST" verbose url="../../login" content-type="application/json" handle-as="json" on-response="_handleLoginResponse" on-error="_handleErrorResponse"></iron-ajax>El servidor siempre responde con un error si el cuerpo de la solicitud está vacío:
Error: la solicitud falló con el código de estado: 422
Esto activa mi método _handleErrorResponse en el que me gustaría acceder a la respuesta real, que se ve así:
{"email":["El campo de correo electrónico es obligatorio."],"password":["El campo de contraseña es obligatorio."]}
Así es como se ve mi _handleErrorResponse :
_handleErrorResponse: function (event) { console.log(event); console.log(event.detail); console.log(event.detail.error); console.log(event.detail.error.message); console.log(event.detail.request); console.log(event.detail.response); console.log(event.detail.request.response); },Y así es como se ve la salida:
Entonces, ¿cómo accedo a la respuesta para poder enviarla a la vista?
Creo que puedes obtener el error JSON aquí:
event.detail.request.xhr.responsePara obtener una explicación más completa, puede leer la respuesta aceptada a una pregunta diferente pero relacionada aquí:
Iron Ajax: ¿cómo acceder a la respuesta desde la función de respuesta?
¡Salud!