Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1240 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Requête asynchrone (comment attendre ?)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Requête asynchrone (comment attendre ?)

n°2018228
exhortae
Membre du Cartel des Médecins
Posté le 20-08-2010 à 23:38:56  profilanswer
 

Bonjour,

 


je cherche à réaliser un script en js qui permet à un utilisateur de s'authentifier à partir d'un service web.

 


Voilà le code que j'obtiens

 
Code :
  1. <script type="text/javascript">
  2.  function authentifier(login, motDePasse) {
  3.   function authentifierResponse(response) {
  4.    return response.getReturn();       
  5.   }
  6.   function onerror(errorNum, errorText) {
  7.        alert('error ' + errorText);
  8.   }
  9.   var authentifierProxy = new service_AuthentificationServicePortType ();
  10.   authentifierProxy.authentifier(authentifierResponse, onerror, login, motDePasse);
  11.  }     
  12.   alert(authentifier("Exhortae", "555555" ));
  13.  </script>
 

Ces 2 lignes

 
Code :
  1. var authentifierProxy = new service_AuthentificationServicePortType ();
  2.   authentifierProxy.authentifier(authentifierResponse, onerror, login, motDePasse);
 

servent à créer un proxy puis appeler une méthode qui contacte le services web de manière asynchrone.

 

La fonction callback authentifierResponse reçoit la réponse du service web (true or false).

 

Le soucis que j'ai c'est dans la ligne

 
Code :
  1. alert(authentifier("Exhortae", "555555" ));
 


elle affiche bien entendue undefined parceque la fonction callback n'a pas le temps de renvoyer le résultat que alert à déjà fais son boulot.

 

Je débute en javascript et en ajax donc j'ai vraiment du mal à trouver une solution à mon problème. Comment ne renvoyer le résultat qu'une fois que mon web service à répondu.

 

Merci

 


PS : je précise qu'en arrière plan c'est bien l'objet XMLHttpRequest qui est utilisé (dans un fichier .js) mais je préfère ne pas y toucher.


Message édité par exhortae le 20-08-2010 à 23:40:07
mood
Publicité
Posté le 20-08-2010 à 23:38:56  profilanswer
 

n°2018277
Pascal le ​nain
Posté le 21-08-2010 à 14:30:46  profilanswer
 

Dans ta fonction authentifier(), tu déclares 2 fonctions, qui seront donc déclarées à chaque exécution. Je te conseille de les sortir de ta grosse fonction.
 
Sinon, même réponse que pour beaucoup, inutile de réinventer la roue, il existe des bibli toutes faites comme jquery, où tu peux faire des requêtes ajax facilement, et intercepter n'importe quel état.
Jquery vaincra !  [:yeah]

n°2018291
exhortae
Membre du Cartel des Médecins
Posté le 21-08-2010 à 18:49:53  profilanswer
 

Pascal le nain a écrit :

Dans ta fonction authentifier(), tu déclares 2 fonctions, qui seront donc déclarées à chaque exécution. Je te conseille de les sortir de ta grosse fonction.

 

:jap:

 
Citation :

Sinon, même réponse que pour beaucoup, inutile de réinventer la roue, il existe des bibli toutes faites comme jquery, où tu peux faire des requêtes ajax facilement, et intercepter n'importe quel état.
Jquery vaincra !  [:yeah]

 


Pas le temps malheuresement pour apprendre un nouveau framework, une solution sale fera l'affaire  :o

Message cité 1 fois
Message édité par exhortae le 21-08-2010 à 18:50:29
n°2018361
pop-pan
yay!
Posté le 22-08-2010 à 21:21:23  profilanswer
 

exhortae a écrit :


 
 
Pas le temps malheuresement pour apprendre un nouveau framework, une solution sale fera l'affaire  :o


 
c'est ce qu'on se dit toujours mais vu qu'avec jquery ou prototype tu l'aurais fait en 5mn chrono je pense que tu avais largement le temps d'aprendre :) d'ailleurs pour ton probleme tu aurais eu juste a définir de declencher ton alert lors du callback.
 
sinon un peu HS, le transfert du login/mdp en javascript? fait plutot un call WS apres le submit de ton form ca sera plus simple et tu n'aurais pas a apprendre un nouveau framework :)


---------------
[VDS] rail vesa, bras ecran, support TV / [ACH] des machins
n°2018393
exhortae
Membre du Cartel des Médecins
Posté le 22-08-2010 à 23:30:58  profilanswer
 

pop-pan a écrit :


 
c'est ce qu'on se dit toujours mais vu qu'avec jquery ou prototype tu l'aurais fait en 5mn chrono je pense que tu avais largement le temps d'aprendre :) d'ailleurs pour ton probleme tu aurais eu juste a définir de declencher ton alert lors du callback.
 
sinon un peu HS, le transfert du login/mdp en javascript? fait plutot un call WS apres le submit de ton form ca sera plus simple et tu n'aurais pas a apprendre un nouveau framework :)


 
 
Franchement après avoir appris le javascript en 24 heures, j'aurais jamais eu la volonté de me mettre à jquery (j'ai vu un peu, c'est clair que ça a l'air de simplifier grandement les choses mais tout ce qui est script c'est pas trop ma tasse de thé).
 
En fait le callback que je fais c'est le seul moyen d'avoir la réponse de mon web service. Le proxy  que je génère avec le wsdl fonctionne comme ça. Je sais que c'est un truc fais à l'arrache mais ça me permet de pas avoir à parser la réponse soap.
 
En tout cas merci pour les réponses.

n°2018397
pop-pan
yay!
Posté le 22-08-2010 à 23:52:43  profilanswer
 

pas de soucis :)
juste si tu sais que tu va etre confronté a de l'ajax dans un futur proche pense a y jeter un oeil :)


---------------
[VDS] rail vesa, bras ecran, support TV / [ACH] des machins

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Requête asynchrone (comment attendre ?)

 

Sujets relatifs
Problème requête PDO[SQL] Une requete bien compliquée
[RESOLU] Requête SQL avec traitement d'un champ date[RESOLU]Stocker le résultat d'une requête dans un tableau
Problème de requête sqlRequête résultat aléatoire
requete BO webi duréeProblème en PHP pour une requête SQL
ACCESS: ComboBox pour filtrer resultat requeteProblème avec une requête mysql en PHP
Plus de sujets relatifs à : Requête asynchrone (comment attendre ?)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR