I am building an app using Restangular. I would implement in one place handling of errors like 401, 403, 500 etc in a response interceptor.
This is what I wrote:
RestangularProvider.setResponseExtractor(function(response, operation, what, url) {
switch(response.meta.code) {
case 200:
// Handle 200
break;
case 401:
// Redirect to login
break;
/* ... */
default:
break;
}
}
What actually happens it's that the 200 is correctly seen but this method is not hit at all for the 401. The JSON I get from server side it is formatted like this for successful responses:
{"meta":{"apiVersion":"0.1","code":200,"errors":null},"response":{"response":"value"}}
and
{"meta":{"apiVersion":"0.1","code":401,"errors":[{"code":401,"message":"Unauthorized"}]},"response":null}
for errors. The response header contains the Status Code:401 Unauthorized as well.
What am I doing wrong?
401 and any error code will hit the errorInterceptor, not the responseInterceptor. responseInterceptor is only called with successful responses!
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