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; } } }
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. }
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.