[AJAX] Ajax - Jquery : appel d'un WS soap
Bonjour à tous.
Je rencontre depuis quelques jours un souci et j'ai beau faire et refaire ce que je trouve sur le net, je n'avance pas. J'aurais donc besoin de votre aide.
J'aimerais appeler un WebService SOAP depuis du html/javascript. J'utilise pour cela JQuery.
Mon test est simplifié, les paramètre d'appel sont codé en dur. Ce que je veux c'est valider l'appel et le retour.
J'appel un WS qui converti des températures. Rien de bien compliqué. Le wsdl du WS se trouve ici : http://www.webservicex.net/ConvertTemperature.asmx?WSDL
et j'utilise comme end point : http://www.webservicex.net/ConvertTemperature.asmx
J'ai testé le WS avec le Web explorer d'Eclipse. Ce qui me permet de récupéré l'enveloppe soap expédiée au WS et de voir celle de réponse.
A l'envoi, j'ai l'enveloppe suivante:
Code:
1 2 3 4 5 6 7 8 9 10 11
|
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="http://www.webserviceX.NET/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<q0:ConvertTemp>
<q0:Temperature>90</q0:Temperature>
<q0:FromUnit>degreeFahrenheit</q0:FromUnit>
<q0:ToUnit>degreeCelsius</q0:ToUnit>
</q0:ConvertTemp>
</soapenv:Body>
</soapenv:Envelope> |
Mon souci est que le retour est toujours en erreur lorsque je l'appel avec JQuery (en ajax donc).
J'ai une age html (page.html) qui contient le minimum vital ainsi que le template soap. Cette page pointe sur un script JS (main.js) qui contient l'appel ajax dès l'ouverture du document.
Je vous joint les 2 codes:
Page.html:
Code:
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
|
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="main.js"></script>
</head>
<body>
<div id="contenu" class="inner">
</div>
<script id="soap-template-temperature" type="application/soap-template">
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="http://www.webserviceX.NET/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<q0:ConvertTemp>
<q0:Temperature>90</q0:Temperature>
<q0:FromUnit>degreeFahrenheit</q0:FromUnit>
<q0:ToUnit>degreeCelsius</q0:ToUnit>
</q0:ConvertTemp>
</soapenv:Body>
</soapenv:Envelope>
</script>
</body>
</html> |
main.js :
Code:
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
|
$(document).ready(function() {
var url2 = "http://www.webservicex.net/ConvertTemperature.asmx";
// Get a handle on our SOAP template.
var soapTemplate2 = $( "#soap-template-temperature" );
// data from the template
var soapBody2 = soapTemplate2.html();
soapBody2 = $.trim( soapBody2 );
$.ajax({
type: "post",
url: url2,
contentType: "text/xml",
data: soapBody2,
dataType: "xml",
processData: false,
timeout: 5000,
success: function( response ){
alert("success");
},
error: function(XMLHttpRequest,textStatus, errorThrown){
alert("error : " + textStatus);
}
});
}); |
J'ai vérifié avec des alert(), l'enveloppe soap est bien récupérée coté JS.
Le résultat est toujours l'affichage en erreur:.
Qu'est ce que je fait de faux?
Mon environnement :
- Windows 7 ;
- jQuery v1.7.1 ;
- FireFox 10.0.2 ;
- Wamp server 2.2.
Je suis preneur de toute idées / critiques.
Merci d'avance et bonne journée à vous.