Search code examples
javascriptajaxpolymer

Polymer Iron Ajax - How to access Response from Request after Error Event?


I use iron-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>

The server always responds with an error if the request body is empty:

Error: The request failed with status code: 422

This triggers my _handleErrorResponse method in which I would like to access the actual response, which looks like this:

{"email":["The email field is required."],"password":["The password field is required."]}

Here is what my _handleErrorResponse looks like:

_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);
},

And here is what the output looks like:

Developer Tools Output

So, how do I access the response so that I can output it to the view?


Solution

  • I think you can get the error JSON here:

    event.detail.request.xhr.response
    

    To get a more complete explanation, you can read the accepted answer to a different, but related question here:

    Iron Ajax - How to access Response from on-response function?

    Cheers!