Avatar billede fuxi Nybegynder
07. marts 2006 - 14:21 Der er 3 kommentarer

HTTP Request (AJAX)

Hejsa

Jeg har lavet en funktion til at hente et XML dokument fra en ekstern server, det virker fint i Firefox, men der er engang imellem fejl når jeg kører det i Internet Explorer, så mit bud er at IE får en timeout på nogle ting og derfor kun virker engang imellem.

Er der en der kan se hvad jeg gør galt?
Min kode er som nedenstående:

function load(url)
{
  var req;
  if (window.XMLHttpRequest)
  {
    req = new XMLHttpRequest();
    req.open("GET",url,false);
    req.send(null);
  }
  else if (window.ActiveXObject)
  {
    try {
      req = new ActiveXObject("Microsoft.XMLHTTP");
      if (req) {
    req.open("GET",url,true);
    req.send();
      }
    }
    catch (e) {
    try
    {
      req = new ActiveXObject("Microsoft.XMLHTTP");
      if (req) {
    req.open("GET",url,true);
    req.send();
    }
      }
      catch (e)    {}
    }               
  }
    // Only if req shows "loaded"
    if (req.readyState == 4)
    {
    // only if "OK"
    if (req.status == 200)
    {
      return req.responseText;
    }
    else
    {
      alert("There was a problem retrieving the XML data:\n" + req.statusText);
      return req.statusText;
        }
      }
  }
Avatar billede htm Nybegynder
07. marts 2006 - 16:01 #1
Der ser noget grumset ud det du har lavet. Prøv sådan i stedet: - du mangler bla. en onreadystatechange funktion eller også skal du lave dit request sykront.

var oXmlHttp = null;

function CreateXMLHttp()
{
    if(typeof XMLHttpRequest != "undefined")
    {
        return new XMLHttpRequest();
    }
    else if(window.ActiveXObject)
    {
        var aVersions = ["MSXML2.XMLHttp.5.0",
                "MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0",
                "MSXML2.XMLHttp","Microsoft.XMLHttp"];

        for(var i=0; i<aVersions.length; i++)
        {
            try
            {
                var oXmlHttp = new ActiveXObject(aVersions[i]);
                return oXmlHttp;
            }
            catch( oError )
            {
                //Do nothing, continue in loop.
            }
        }
    }
    throw new Error("XMLHttp object could not be created");
}

function load(url)
{
    if (!oXmlHttp)
    {
        oXmlHttp = CreateXMLHttp();
    }
    else if (oXmlHttp.readyState != 0)
    {
        oXmlHttp.abort();
    }
    oXmlHttp.open("GET",url,true)
    oXmlHttp.onreadystatechange=function() { GetDataStateChange();  }
    oXmlHttp.send(null);
}

function GetDataStateChange()
{
    if (oXmlHttp.readyState==4)
    {
        if (oXmlHttp.status==200)
        {
            //Do you stuff here.
        }

    }
}
Avatar billede fuxi Nybegynder
08. december 2006 - 08:05 #2
Thanx kan du ikke lige smide et svar, så får du point
Avatar billede htm Nybegynder
08. december 2006 - 15:09 #3
bedre sent end aldrig... :)
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