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

jQuery Discussion :

Closure sur un $.post()


Sujet :

jQuery

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Points : 149
    Points
    149
    Par défaut Closure sur un $.post()
    Bonjour,

    J'aimerais faire un $.post dans un objet tout en pouvant stocker des valeurs de retour dans le callback (avoir accès à this), pour cela j'ai tenté une closure mais sans succès, voici le morceau de code (voir dans le if):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ($.post('http://montest.com', params, function(tokens)
                       {
                           if (!tokens.error)
                           {
                               this.token.access_token = tokens.access_token;
                               this.token.refresh_token = tokens.refresh_token;
                           }
                           else
                               window.open("http://montest.com", "OAUTH");
                       }, "json"))(this)
    Merci pour votre aide !

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    this.token

    quelle est la portée de this dans ce cas de figure ?
    stocker dans un objet ... oui , encore faut il que ton objet est une portée au niveau de la window ...

    passe par une variable globale ou stocke le retour dans un div caché ou dasn un data d'objet sur la page
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Points : 149
    Points
    149
    Par défaut
    Bonsoir,

    voici la portée du this:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function MaClasse()
    {
      this.access_token = null;
     
      this.test = function()
      {
        $.post(); /*ICI*/
      }
    }
    Que veux tu dire quand tu dis que mon objet doit avoir une portée au niveau de la window ?

    Selon toi le plus adapté est donc de cacher le résultat dans le DOM pour le récupéré ensuite ?

    Merci !

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 955
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 955
    Points : 44 103
    Points
    44 103
    Par défaut
    Bonsoir,
    une des formes d'écriture de la closure est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    (function( param){
      // utilisation du param
      // appel de la/les fonctions
    })(param);

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Points : 149
    Points
    149
    Par défaut
    Bonsoir,

    Une closure est-elle vraiment utile ?

    Après tout ma variable this.token n'est pas encapsulé dans un scope qui se ferme avant mon appelle à $.post(), je devrais donc pouvoir la récupérer en "globale" dans le callback non...?

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    je pense que tu n'as pas du lire ma réponse ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Points : 149
    Points
    149
    Par défaut
    Bonjour SpaceFrog,

    J'ai bien lu ta réponse, j'ai d'ailleurs répondu à ta première question qui j'espérais ouvrirait de nouvelles perspectives de réponses.

    Citation Envoyé par SpaceFrog Voir le message
    this.token

    quelle est la portée de this dans ce cas de figure ?
    La réponse se trouve dans le post suivant le tient.


    Citation Envoyé par SpaceFrog Voir le message
    stocker dans un objet ... oui , encore faut il que ton objet est une portée au niveau de la window ...
    J'avoue ne pas avoir bien saisit ce passage, je sais que tous les objets héritent de window donc j'en comprends le sens, mais comment savoir si l'objet a ou non cette portée ?


    Citation Envoyé par SpaceFrog Voir le message
    passe par une variable globale ou stocke le retour dans un div caché ou dasn un data d'objet sur la page
    J'utiliserai une globale si il reste vraiment que ces 2 options mais j'aimerais comprendre pourquoi je perds la portée du this dans le $post() dans mon cas de figure.

    Merci !

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    parce que tu es dans le post justement tu peux essayer le principe du that = this


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function MaClasse()
    {
    that=this  
    this.access_token = null;
    this.test = function()
      {
        $.post(
     
     that.access_token= 'foo' ); /*ICI*/
      }
    }
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

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

Discussions similaires

  1. [Servlet] Créer un fichier sur un poste distant
    Par JohnBlatt dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 07/05/2005, 18h51
  2. Connecter Delphi 7 et une bd mysql sur un poste distant
    Par nordine001 dans le forum Bases de données
    Réponses: 5
    Dernier message: 23/08/2004, 14h40
  3. Réponses: 2
    Dernier message: 14/05/2004, 12h55
  4. [CR10][ASP.NET]Impression sur le poste Client
    Par David.V dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 30/04/2004, 13h41

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