Avatar billede zantiago Nybegynder
17. september 2007 - 17:51 Der er 4 kommentarer

Poste XML til ASPX-fil via xmlhttp

Hej Eksperter,

Jeg skal have sendt noget XML fra en HTML-side til en aspx-fil via Javascript, men jeg kan ikke få det til at virke.

Min kode ser således ud:
-------------------------------------------------------------------

<Script>
function GeneratePDF(){
    XmlData = '';
    XmlData += '<?xml version="1.0" encoding="utf-8"?> ';
    XmlData += '<templates>';
    XmlData += '<template name="Page1High1">';
    XmlData += '<data name="Heading1">Heading 1</data>';
    XmlData += '<data name="Heading2">Heading 2</data>';
    XmlData += '</template>';
    XmlData += '</templates>';

    xmlhttp = createRequestObject();

    var url = "CallService.aspx?XmlData=" + XmlData
    xmlhttp.open("POST",url,false);
    xmlhttp.onreadystatechange=state_Change;
    xmlhttp.send()
}
   
    function createRequestObject()
{
        if (window.XMLHttpRequest)
        {
              return xmlhttprequest = new XMLHttpRequest();
        }
        else if (window.ActiveXObject)
        { 
            return xmlhttprequest = new ActiveXObject("Microsoft.XMLHTTP");
        }
}

    function state_Change()
    {
    if (xmlhttp.readyState==4)
      {
      if (xmlhttp.status==200)
        {
           
              var xmldoc = xmlhttp.responseXML;
                var root = xmldoc.getElementsByTagName('PDF');
                for (var iNode = 0; iNode < root.length; iNode++) {
                  var node = root.item(iNode);
                  document.getElementsByTagName('Table')[0].style.display = "Block";
                  document.getElementsByTagName('Input')[0].style.display = "None";
                  document.getElementsByTagName('A')[0].href = node.childNodes.item(0).text;
                  document.getElementsByTagName('Img')[0].src = node.childNodes.item(2).text;
                }
         
        }
      else
        {
            alert("Problem retrieving XML data. Fejl:" + xmlhttp.statusText + "(" + xmlhttp.status + ")" )
        }
      }
    }


</Script>
------------------------------------------------------------------

Håber I kan hjælpe...
Avatar billede montago Praktikant
17. september 2007 - 20:07 #1
du mangler vidst

xmlhttp.send(null)

prøver lige din kode...
Avatar billede montago Praktikant
17. september 2007 - 20:11 #2
dernæst vil jeg anbefale at bruge GET... idet du ikke sender noget i din POST... andet end Querystring :D
Avatar billede montago Praktikant
17. september 2007 - 20:24 #3
hvilken fejlmeddelse får du ? -- jeg har ikke en ASPX side jeg kan poste til... men får en fejl ( 0 )... sikkert blot fordi responseText er tom eller der ik kommer nogen...
Avatar billede olebole Juniormester
18. september 2007 - 18:07 #4
<ole>

Der skal altid være en helt særlig god grund til at bruge GET som XMLHttpRequest-metode. IE har det med at cache gettede data - og bruger derfor mere og mere hukommelse for hver request. Det sker ikke ved POST.

Derudover bør du vel bruge asynkron request - ikke mindst, når du anvender en callback-funktion - og så bør du sætte en content-type header:
    xmlhttp.open("POST",url,true);
    xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
    xmlhttp.send(null);

Det lyder dog meget sært, at du sender XML i en query-streng. Hvad skal du lave? Hvad skal der ske på serveren? Hvad forventer serveren at modtage?

/mvh
</bole>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester