Thursday, May 17, 2007

Session timeout handing in AJAX call

DWR has a textHtmlHandler that allows you to manage what happens when a DWR request receives a response that isn't Javascript. This generally means that a server session has timed out, so it is usual in a textHtmlHandler to redirect to a login screen.

dwr.engine.setTextHtmlHandler(function() {
//automatically take user to logon page due to timeout

You set a global error handler like this:


You can also specify call or batch level error or warning handlers. For example, in the call meta-data:

Remote.method(params, {
callback:function(data) { ... },
errorHandler:function(errorString, exception) { ... }

or, in batch meta-data:


Remote.method(params, function(data) { ... });
// Other remote calls

errorHandler:function(errorString, exception) { ... }

Unfortunately, Dojo doesn't provide such global error handler and has to be handled individually on each onLoad().

load: function(type, data, evt) {
sessionTimeoutCheck(data, evt);

No comments: