Make it Simple(r)
Breaking Changes
Simplifying normalizeErrorResponse
After much discussion, the team around ember-ajax
decided that it was probably not a great idea to reformat the error payload to match some arbitrary format that we designed. Instead, we should just use the payload that the server returned.
If you want to maintain the old behavior, you can include the the legacy/normalize-error-response
mixin, which has the old version of the method included and will override the new behavior.
// app/services/ajax.js
import AjaxService from 'ember-ajax/services/ajax';
import LegacyNormalizeErrorResponse from 'ember-ajax/mixins/legacy/normalize-error-response';
export default AjaxService.extend(LegacyNormalizeErrorResponse, {
// Your other configuration here
});
Replacing AjaxError.errors
with AjaxError.payload
The errors
property on any AjaxError
subclass has been deprecated in favor of a payload
property for a while now. If you want access to the response from the server, you should now use the payload
property, like so:
return this.get('ajax').request('/posts')
.then((posts) => {
// Do something with your posts
})
.catch((error) => {
this.displayError(error.payload); // `error.payload` will be whatever the server responded with
});
No longer modify null or undefined server response (#232)
If your server response is interpreted by jQuery#ajax to be null
or undefined
, we will resolve that value, instead of turning it into an empty object.