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 :
- <script type="text/javascript">
- function authentifier(login, motDePasse) {
- function authentifierResponse(response) {
- return response.getReturn();
- }
- function onerror(errorNum, errorText) {
- alert('error ' + errorText);
- }
- var authentifierProxy = new service_AuthentificationServicePortType ();
- authentifierProxy.authentifier(authentifierResponse, onerror, login, motDePasse);
- }
- alert(authentifier("Exhortae", "555555" ));
- </script>
|
Ces 2 lignes
Code :
- var authentifierProxy = new service_AuthentificationServicePortType ();
- 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 :
- 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