Donc j'essaye de faire une requête et passer un objet SOAP, le problème est qu'il revient bien (onSuccess) mais le responseXML n'est pas là. J'ai utilisé Fiddler et HTTP Client (version OSX de fiddler) et entré les mêmes requêtes, boom, les deux avec la bonne réponse. Avec le prototype, pas tellement.SOAP Prototype Ajax SOAPAction En-tête question
J'ai essayé dans l'en-tête et dans les champs de paramètres ...
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript">
function test(){
var body = '<?xml version="1.0" encoding="utf-8"?>' +
'<soap:Envelope' +
' xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"' +
' xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"' +
' xmlns:tns="urn:uvindexalert" xmlns:types="urn:uvindexalert/encodedTypes"' +
' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' +
' xmlns:xsd="http://www.w3.org/2001/XMLSchema">' +
' <soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">' +
' <tns:getUVIndexAlertByZipCode>' +
' <in0 xsi:type="xsd:string">92109</in0>' +
' </tns:getUVIndexAlertByZipCode>' +
' </soap:Body>' +
'</soap:Envelope>';
var headers = ["SOAPAction", " ", "Content-Type", "text/xml"];
var request = new Ajax.Request("http://iaspub.epa.gov/uvindexalert/services/UVIndexAlertPort?wsdl", {
contentType: "application/xml",
requestHeaders: headers,
parameters: "SOAPAction: ",
postBody: body,
onSuccess: function(response){
var j = 0;
},
onFailure: function(){
var i = 0;
}
});
}
test();
</script>
Le var i & j ne sont que je sais donc où il se casse, je peux l'inspecter. J'ai aussi regardé en ligne et j'ai remarqué que quelqu'un a dit essayer plutôt que text/xml application/xml puis ajouter charset = utf-8 donc j'ai fait tout ça mais toujours rien. Quelqu'un sait-il à coup sûr comment récupérer XML avec un SOAPAction?