| 353 | |
| 354 | == Tratando Sessões Expiradas == |
| 355 | A partir do Workflow 1.7.00.000, foram feitas algumas modificações (inclusive no !NanoAjax) que permitem o tratamento de sessões expiradas. Quando uma sessão expira e é feita uma chamada Ajax, a resposta incluirá uma exceção com valor {{{__NANOAJAX_SESSION_EXPIRED__}}} para cada chamada virtual. O tratamento é bem simples, como pode ser visto abaixo (!JavaScript): |
| 356 | {{{ |
| 357 | /* função que trata as exceções */ |
| 358 | function tratamentoExcecao(header, body, exceptionResponse) |
| 359 | { |
| 360 | var ajaxResult = JSON.parse(body); |
| 361 | for (var requestIdentifier in ajaxResult) |
| 362 | { |
| 363 | /* verifica se a exceção é originária da sessão expirada */ |
| 364 | if (ajaxResult[requestIdentifier]['exception'] == '__NANOAJAX_SESSION_EXPIRED__') |
| 365 | { |
| 366 | /* informa o usuário sobre a sessão expirada e o envia para a tela de login */ |
| 367 | alert('Sua sessão expirou'); |
| 368 | window.location = 'login.php'; |
| 369 | return ; |
| 370 | } |
| 371 | } |
| 372 | } |
| 373 | |
| 374 | var nc = new NanoController(); |
| 375 | nc.setExceptionHandler(tratamentoExcecao); // define que nossa função será usada para tratamento de exceções |
| 376 | /* ... */ |
| 377 | nc.sendRequest(); |
| 378 | }}} |