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:
So, how do I access the response so that I can output it to the view?
The most simple method would be to add var ajaxTime= new Date(). getTime(); before the Ajax call and in the done get the current time to calculate how long the Ajax call took to make. var ajaxTime= new Date(). getTime(); $.
AJAX - Server Response The XMLHttpRequest object has an in-built XML parser. The responseXML property returns the server response as an XML DOM object.
Response is the object passed as the first argument of all Ajax requests callbacks. This is a wrapper around the native xmlHttpRequest object. It normalizes cross-browser issues while adding support for JSON via the responseJSON and headerJSON properties.
Use setInterval() when you want to send AJAX request at a particular interval every time and don't want to depend on the previous request is completed or not. But if you want to execute the AJAX when the previous one is completed then use the setTimeout() function.
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!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With