User case:
User
 login mobile application, and on behave of user mobile application 
sends every Ajax request to back-end service along with an authorization
 token, server will give 401 status if "session" or token is expired 
time out.
Solution:
a.
 Use global .Ajaxsetting() to specify the status code 401 call back 
function. It is probably the easiest way. However in this approach the 
ajax call error will still bubble up event chain and will still trigger 
the subsequently error handler. So it only works if you redirect user to
 login page immediately.
b. Use promise chain error call back to trap the error.
Let's look at promise.then(success, error) function. It returns a promise itself.
The
 promise is resolved if 1) success/error return a value or 2) the 
returned value is a promise, then it is resolved with this promise.
The promise is rejected if success / error throws an error.
So
 if we simply return a dummy value when 401 is caught, then it will be 
passed to the next successHandler. then in the successHandler we need to
 differentiate the trapped error and real success response.
 
No comments:
Post a Comment