Bonjour,
Le problème rencontré : Lorsque je charge les données d'un store dans un formulaire alors que ma session est terminé, je ne suis pas redirigé sur l'écran d'accueil.
Explication :
J'ai un arbre (TreePanel) rempli à l'aide d'un store. Lorsque je clique sur un noeud, j'affiche les données de ce noeud, retournées au format JSON, dans un formulaire de la façon suivante
Jusqu'ici tout fonctionne très bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Ext.getCmp('contentPanel').layout.activeItem.getForm().load({ url: 'index.php', params: { task : typeNode + '.getInfos', data : node.id }, scope : this, success : function(form, action){ form.owner.items.items.each(function(f) { Ext.getCmp(f.id).setDisabled(disabled); }); var path = (action.result.data.path != null) ? action.result.data.path : ''; Ext.getCmp('contentPanel').setTitle(title + path + node.code); module_contracts.app.getController(typeNode).setForm(action.result.data); } });
Maintenant, je teste la chose suivante :
-> Je me connecte à partir d'une instance I1 avec le user U1, je clique sur mes différents noeuds pour afficher mes infos dans mon formulaire.
-> Je me connecte à partir d'une instance I2 avec le même user U1. Je déconnecte alors le user U1. Sa session est donc expirée / terminée.
-> Dans mon instance I1, je clique sur un noeud de mon arbre de façon à afficher les infos.
-> Je m'attends à être redirigé sur la page d'accueil. Au lieu de ça, dans ma console de debug, j'obtiens l'erreur suivante :
Questions / SolutionsExt.Error: You are trying to decode an invalid JSON String: <suivi du code HTML de ma page daccueil> (page sur laquelle je mattends à être redirigé)
Pour l'instant, pour pallier ce problème, j'intercepte l'erreur dans mon controller, et je redirige sur ma page d'acceuil de la façon suivante
Est-ce la/une bonne méthode ? Y a t-il possibilité d'avoir les détails de l'erreur (status, code retour, etc...) ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 init: function(){ Ext.Error.handle = function(err){ location.href = location.origin + location.pathname; return true; } }
Utilisant le "form.load()", je pensais que tout cela se passait dans le success / failure. Mais l'appel PHP dans ma requête Ajax n'est même pas fait (la fonction getInfos() de mon controller PHP n'est même pas appelé).
Que me conseillez vous ?
Merci d'avance![]()
Partager