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

JavaScript Discussion :

Consommer un web service JavaScript


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 9
    Points : 10
    Points
    10
    Par défaut Consommer un web service JavaScript
    Bonsoir a tous
    je suis en train de consomme un web service avec JavaScript, je tester cette solution, mais je peux pas comprend quelque ligne de code alors S.V.P. qui pe m'aider a explique a qoid sert chaque ligne souligne de se code
    Merci
    Cordialement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    
    function envoyer(){
    var xmlhttp
    if ( typeof XMLHttpRequest == "object" ) {
    xmlhttp = new XMLHttpRequest();
    }
    if ( typeof ActiveXObject == "object" || typeof ActiveXObject == "function") {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    
    xmlhttp.open("POST", "http://localhost:8080/testWebService/WebService1?Tester",true);
    xmlhttp.onreadystatechange=function() {
    if (xmlhttp.readyState==4) {
    alert(xmlhttp.responseText)
    }
    }
    
    xmlhttp.setRequestHeader("MessageType", "CALL")
    xmlhttp.setRequestHeader("Content-Type", "text/xml")
    
    var miSoap=
    '<?xml version="1.0" encoding="UTF-8"?> \n' +
    
    '<soap:Envelope\n' +
    'xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"\n'+
    'xmlns:ns1="WebService1"\n'+
    '>\n'+
    '<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/wsdl/">\n'+
    '<ns1:bonjour>\n'+
    '</ns1:bonjour> \n' +
    '</soap:Body> \n' +
    '</soap:Envelope>';
    
    alert(miSoap);
    xmlhttp.send(miSoap);
    }

  2. #2
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    seule la première ligne que tu as souligné est importante
    c'est l'adresse de ton web service.

    Mais le navigateur t'interdit d'intéroger un autre serveur que celui qui héberge ta page.

    donc ton URL http://localhost:8080/testWebService/WebService1?Tester
    NE DOIT PAS CONTENIR DE PARTIE SEERVEUR
    /testWebService/WebService1?Tester
    le serveur est obligatoirement celui de la page.

    les deux autres lignes que tu as souligé sont des espaces de noms XML
    La définition des datas à envoyer au serveur pour invoquer le service est normalisé et ses espaces de noms font parti de la norme.
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    function envoyer(){
    var xmlhttp
    if ( typeof XMLHttpRequest == "object" ) {
    xmlhttp = new XMLHttpRequest();
    }
    if ( typeof ActiveXObject == "object" || typeof ActiveXObject == "function") {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
     
    xmlhttp.open("POST", "http://localhost:8080/testWebService/WebService1?Tester",true);
    xmlhttp.onreadystatechange=function() {
    if (xmlhttp.readyState==4) {
    alert(xmlhttp.responseText)
    }
    }
     
    xmlhttp.setRequestHeader("MessageType", "CALL")
    xmlhttp.setRequestHeader("Content-Type", "text/xml")
     
    var miSoap=
    '<?xml version="1.0" encoding="UTF-8"?>' +
    '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns1="WebService1" >'+
    '<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/wsdl/">'+
    '<ns1:bonjour />'+
    '</soap:Body>' +
    '</soap:Envelope>';
     
    alert(miSoap);
    xmlhttp.send(miSoap);
    }

    la réponse du serveur est toujours en XML tu n'as pas besoin de récupérer xmlhttp.responseText pour l'analyser. xmlhttp.responseXML contient la réponse sous forme d'un DOM

    A+JYT

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Merci bien sekaijin, ça marche et je modifier le code, pour supporte touts le navigateur pas seulement IE, mais si je fais alert(xmlhttp.responseText) il m'afficher une alert vide et si je fais alert(xmlhttp.responseXML) elle m'affiche [object].
    Je sais pas comment obtenir le résultat de DOM pouvez-vous m'aide S.V.P

  4. #4
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    tu as un example complet ici:http://www.in3d.eu/in3d_Programming/...sponseXML.html


    par contre il ne vérifie pas que le XML est OK
    lorsque tu as reçus ta réponse il te faut vérifier
    responseXML.parseError.errorCode et
    responseXML.parseError.reason

    si la réponse qu'envoie le server n'est pas conforme tu aura une erreur XML dans responseXML.parseError


    A+JYT

Discussions similaires

  1. Consommer un web service avec JavaScript
    Par Med_Hamma dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/06/2012, 15h44
  2. Comment consommer un web service par un client Javascript
    Par feldene dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/09/2010, 10h17
  3. deployer et consommer un web service
    Par fétémété dans le forum Services Web
    Réponses: 6
    Dernier message: 23/10/2007, 22h41
  4. Réponses: 7
    Dernier message: 17/10/2007, 17h06
  5. Comment consommer un web service en java
    Par Vins83 dans le forum Services Web
    Réponses: 1
    Dernier message: 16/01/2006, 23h33

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