IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Requête Ajax et redirection php (sur le modèle MVC)


Sujet :

AJAX

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2009
    Messages : 115
    Points : 53
    Points
    53
    Par défaut [AJAX] Requête Ajax et redirection php (sur le modèle MVC)
    Bonjour,

    Maintenant que j'arrive (a peu près) à maîtriser les requêtes ajax, j'ai une question que je vais essayer de vous expliquer.

    J'ai créer une application de type MVC en PHP (bien sur). Avec le script de ce poste, j'appelle une page via ajax comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    manager.get({
    	mode : false,
    	url : 'index.php?module=monModule&controller=monController&action=monAction',
    	json : true,
    });
    (mode = synchrone ou asynchrone)

    La page est correctement appellé et j'ai les bons retours (en tout cas ceux que je souhaite).

    C'est là que tout va se compliquer. Pour faire simple, du coté php dans l'application de type MVC, j'ai un plugin qui détecte si le visiteur est logué ou non. Et avant de dispatcher l'action et de rendre la vue, je change les paramètres module, contrôler et action pour une redirection vers une page de connexion.

    Puis ensuite je dispatche et renvoi la vue qui doit être une page login s'il n'est pas identifié. Ou tout du moins j'essaye car c'est la que ca plante.

    Je suppose que se soit un problème d'entêtes. Avez vous déjà eu se problème ?

    Pour expliquer un peu plus ...

    Lors d'une requête ajax qui se déroule correctement je retrouve la vue dans la réponse (AJAX), mais dans le cas de la pseudo redirection, la vue ne retourne pas dans le requête ajax mais viens du coup s'afficher directement.

    PS: J'espère poste au bon endroits

  2. #2
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    Quel est le probleme exactement? Qu'est-ce que tu reçois que tu ne voudrais pas recevoir? Qu'est-ce que tu voudrais recevoir? Bref un peu plus de détails ^^

    PS: je réponds ici et pas sur ton autre post, mais ta façon d'utiliser ta fonction est extrêmement mauvaise.
    Le mode synchrone ne devrait JAMAIS être utilisé car pendant le temps de la requete, le navigateur est freezé (même résultat qu'une boucle infinie par exemple, sous firefox au bout d'un moment un message indique qu'un script ne répond plus).
    J'imagine que ce mode existe pour une raison bien précise (si quelqu'un connait un cas dans lequel on ne pourrait pas avantageusement le remplacer par un mode asynchrone, je suis preneur), mais ce qui est sur, c'est que ce n'est pas pour se simplifier l'écriture de code.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2009
    Messages : 115
    Points : 53
    Points
    53
    Par défaut
    Pour le mode synchrone, je vais suivre ton conseil. Merci.

    Pour le reste du problème, dans un cas normal j'envoie ma requête ajax et je reçois en réponse un tableau créer via json et dans ce tableau, il y a la vue.

    Pour que cela ce je fait un "dispatachage" pour aller cherche le contrôler d'action avec comme éléments les paramètres de la méthode $_GET qui vient de la requête AJAX.

    Dans le cas ou je mets le plugin, je récupère le requête, je test s'il la personne est connectée, et si elle n'est pas connectée, je change les paramètre puis je vais chercher mon contrôler d'action ainsi que la vue que je mets dans mon tableau de retour.

    Pour répondre aux question, je n'est plus de retour dans ma requête AJAX, il n'y a plus de tableau. Et l'effet indésirable c'est que ce tableau s'affiche directement sur la page alors que je ne l'ai pas demandé.

    Est ce que je suis plus claire et est ce que vous voyez d'où pourrais provenir le problème ? Je voudrais bien vous donner du code, mais il y en a tellement pour arriver au résultat que ...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2009
    Messages : 115
    Points : 53
    Points
    53
    Par défaut
    J'ai fini par trouver une solution à mon problème, je testais pas à un endroit si l'entête avait un retour xmlHttpRequest.

    merci tout de même

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/06/2013, 14h19
  2. Réponses: 1
    Dernier message: 24/07/2009, 02h59
  3. [Sécurité] Redirection php sur un site sécurisé ssl
    Par colin.sauvanet dans le forum Langage
    Réponses: 30
    Dernier message: 23/05/2008, 16h53
  4. [AJAX] requète AJAX en boucle
    Par Emcy dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 25/04/2008, 11h30
  5. [AJAX] InlineMod - Ajax - Requêtes PHP-MySQL
    Par funkyy dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 09/04/2008, 17h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo