Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
J'ai un contrôleur qui s'occupe des requêtes ajax
class AjaxController extends Zend_Controller_Action { /* Globale à toute les actions */ public function init() { $ajaxContext = $this->_helper->getHelper('AjaxContext'); $ajaxContext->addActionContext('topthemes', 'html') ->initContext(); } /***************************/ /* Récupère les top thèmes */ public function topthemesAction() { /* récupération de données */ $top_themes = Egame_Cache_Init::get('top_themes'); $this->view->cached = (boolean) $top_themes; if(!$top_themes) { $table = new Db_Theme; $result = $table->seekTopThemes(6); Egame_Cache_Init::set($top_themes, 'top_themes'); } $this->view->top_themes = $top_themes; } }
Cela marche parfaitement lorsque je ne suis pas logué, mais dès que je me connecte, via Firebug je vois erreur 403 et si je change de page, je me retrouve déconnecté.
Il s'agit d'un problème lié aux droits d'accès ? Pourtant j'ai bien autorisé l'accès à tous les rôles à la ressource controlleur ajax.
Dernière modification par eMeRiKa (05-03-2009 15:20:34)
Hors ligne
ben j'ai fais pareil et pas de pb
Hors ligne
Pour tester les ACL, j'ai supprimé le rendu ajax et l'ai remis en standard. J'ai ensuite appelé via l'url ma page et je n'ai eu aucun problème d'accès que je soit connecté ou pas.
Je ne comprend vraiment pas d'où vient mon problème, comment utilisez vous AJAX et les ACL ? Faut-il faire une manipulation particulière ?
J'ai comparé les deux en tête HTML des requêtes ajax entre quand je suis logué ou pas. La seule différence est l'apparition de ces deux lignes en plus :
Set-Cookie
egame_session=deleted; expires=Wed, 05-Mar-2008 11:11:33 GMT; path=/
Serait-il possible qu'au moment de ma requête ajax cela détruise ma session et donc pause problème ?
Dernière modification par eMeRiKa (05-03-2009 12:15:42)
Hors ligne
eMeRiKa a écrit:
tu définis tes acl dans ton bootstrap ?
je les ai dans un fichier ini chargé par le front contrôller
je ne sais pas répondre à ta dernière question
A+JYT
Hors ligne
A priori le problème ne vient pas des ACL mais plutôt de la destruction de la session, par contre je ne sais pas comment y remédier...
Dernière modification par eMeRiKa (05-03-2009 12:42:58)
Hors ligne
Je viens de faire un nouveau test, dans mon fichier JS, j'ai remplacé l'appel (j'utilise Jquery)
url: 'ajax/topthemes/format/html'
par
url: 'ajax.php'
en mettant un simple echo dans le fichier ajax.php et bien là aucun problème.
Comment faites-vous pour appeler le controleur ajax et la bonne méthode dans votre JS ? Est ce que ma méthode
url: 'ajax/topthemes/format/html'
n'est pas la bonne ?
Dernière modification par eMeRiKa (05-03-2009 14:16:23)
Hors ligne
this.group = new Ext.data.JsonStore({ proxy: new Ext.data.HttpProxy({ url: Ext.app.baseUrl + 'group/getList/', method: 'GET', disableCaching: false }), autoLoad: true, root: 'rows', totalProperty: 'results', fields: [ {name : 'group_id'}, {name : 'group_name'} ] });
je fais ça
dans ma page index.phtml source j'ai
<script type="text/javascript" src="<?php echo $this->baseUrl; ?>/public/scripts/ext/ext-all.js"></script> <script type="text/javascript"> Ext.app.baseUrl = '<?php echo $this->baseUrl; ?>/'; </script>
ainsi tout mon javascript peux préfixer ses url avec Ext.app.baseUrl
A+JYT
Hors ligne
non car mon truc à été développé avant que le ajaxcontext existe j'ai fais ça
http://www.z-f.fr/forum/viewtopic.php?pid=12602#p12602
A+JYT
Hors ligne
J'ai (enfin) résolu mon problème ça vient de mon plugin qui contrôle si il n'y a pas eu vol de la session que j'avais récupéré via le livre " Zend Framework Bien développer en PHP".
Hors ligne