2010-06-22 4 views
0

Je reçois des erreurs de validation telles que: "Aucune instruction de traitement commence par 'xml ...." lorsque j'essaie de valider mon code avant de le mettre dans l'application tierce que j'utilise . Comment envoyer un message soap avec Javasript incorporé sur une page XSL sans avoir cette erreur? Voici le code en question:Erreur avec la validation XSL de Javascript

<script language="javascript"> 

function test1(newSymbol){ 

var symbol = newSymbol; 
var xmlhttp = new XMLHttpRequest(); 

xmlhttp.open("POST", "http://www.webservicex.net/stockquote.asmx?op=GetQuote",true); 
xmlhttp.onreadystatechange=function() { 
    if (xmlhttp.readyState == 4 &amp;&amp; xmlhttp.status == 200) { 
    alert(xmlhttp.responseText); 
    // http://www.terracoder.com convert XML to JSON 
    var json = XMLObjectifier.xmlToJSON(xmlhttp.responseXML); 
    var result = json.Body[0].GetQuoteResponse[0].GetQuoteResult[0].Text; 
    // Result text is escaped XML string, convert string to XML object then convert  to  JSON object 
    json = XMLObjectifier.xmlToJSON(XMLObjectifier.textToXML(result)); 
    alert(symbol + ' Stock Quote: $' + json.Stock[0].Last[0].Text + '\n' + 'Company  Name: ' + json.Stock[0].Name[0].Text); 
    document.getElementById('price').innerHTML = json.Stock[0].Last[0].Text; 
    document.getElementById('name').innerHTML = json.Stock[0].Name[0].Text; 

    } 
    else if (xmlhttp.readyState == 4 &amp;&amp; xmlhttp.status != 200) { 
    alert('Server Issue'); 

    } 
} 
xmlhttp.setRequestHeader("SOAPAction", "http://www.webserviceX.NET/GetQuote"); 
xmlhttp.setRequestHeader("Content-Type", "text/xml"); 
var xml = '<?xml version="1.0" encoding="utf-8"?>' + 
    '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' + 
       'xmlns:xsd="http://www.w3.org/2001/XMLSchema" ' + 
       'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">' + 
    '<soap:Body> ' + 
     '<GetQuote xmlns="http://www.webserviceX.NET/"> ' + 
     '<symbol>' + symbol + '</symbol> ' + 
     '</GetQuote> ' + 
    '</soap:Body> ' + 
    '</soap:Envelope>'; 
xmlhttp.send(xml); 
} 

</script> 

Im obtenir l'erreur sur le var xml = ligne droite après que je déclare les en-têtes de savon.

Merci pour votre aide. :)

Répondre

0

Supprimez simplement la déclaration XML: ce n'est pas nécessaire dans ce cas, car les pseudo-attributs de version et de codage spécifient les valeurs par défaut - 1.0 et utf-8.

+0

J'ai donc pensé que je pourrais utiliser les balises CDATA pour la chaîne de message SOAP elle-même et cela a fonctionné. Cependant, maintenant je reçois une erreur "Accès refusé" sur ma ligne xmlhttp.open (....). J'ai déjà permis à IEs misc "autoriser l'accès inter-domaine". Ce code appelle d'un domaine Https à un domaine non sécurisé ... Est-ce pourquoi? . – Lucas