Avatar billede karl-koder Nybegynder
13. august 2008 - 22:01 Der er 11 kommentarer og
1 løsning

XMLHttpRequest er ikke defineret ?

Hejsa,

Jeg har lavet en lille chat metode der benytter AJAX til til post af besked og det hele virker fint i diverse browsere.

Dog er der nogle få brugere der får fejlen :

'XMLHttpRequest' er ikke defineret

Er det så noget i deres browser der ikke er slået til ?
Avatar billede erikjacobsen Ekspert
13. august 2008 - 22:20 #1
Der er forskel i browsere, ja. Den lidt lange forklaring kan du læse om her: http://dengodekode.dk/artikler/ajax/xmlhttprequest_wrapper.php
Avatar billede karl-koder Nybegynder
13. august 2008 - 22:29 #2
Det er netop den wrapper jeg benytter så jeg kan ikke helt forstå at det ikke burde virke og da specielt når de få der har problemer bruger IE7
Avatar billede olebole Juniormester
13. august 2008 - 23:49 #3
<ole>

Nej, hvis du bruger den wrapper, kan XMLHttpRequest ikke være undefined. Du laver en eller flere fejl  =)

/mvh
</bole>
Avatar billede karl-koder Nybegynder
14. august 2008 - 00:15 #4
Hvorfor virker det så på flere 100 maskiner med forskellige browser versioner, men på ganske få maskiner med windows xp sp2 og IE7 kommer den ovenstående fejl.

og bare til info kommer her den kode jeg bruger i toppen af siden :
Avatar billede karl-koder Nybegynder
14. august 2008 - 00:16 #5
(function(){
    if (window.XMLHttpRequest) return;
    var o = null, s,
    a = ["MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP"];
    for (var i=0,j=a.length; i<j; i++) {
        s=a[i];
        try {
            if (o=new ActiveXObject(s))  break;
        }
        catch(e){};
    }
    window.XMLHttpRequest = o ? function(){return new ActiveXObject(s)} : null;
    o = null;
})();

function AjaxReq(sMethod, sUrl, oVars, fnCallBack)
{
    var oHttp = new XMLHttpRequest();
    oHttp.open(sMethod, sUrl, true);
    oHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");
    oHttp.onreadystatechange = _fnCallBack;
    var aQuery = [];
    for (var x in oVars) aQuery.push( encodeURIComponent(x) + "=" + encodeURIComponent(oVars[x]) );
    oHttp.send( aQuery.join("&") );
    aQuery = null;
               
    function _fnCallBack() {
        if (oHttp.readyState<4) return;
        fnCallBack(oHttp);
        oHttp = null;
    }
    return this;
}
Avatar billede olebole Juniormester
14. august 2008 - 00:57 #6
Tjah, jeg har XP SP2 og IE7 og får ingen fejl  =)

Jeg kan se, det er et stykke tid siden, du har kopieret koden. Da MSXML2.XMLHTTP.6.0 kom, blev version 4.0 og 5.0 deprecated og første fallback version er nu 3.0 - hvorfor min kode blev ændret for et par måneder siden. Om det evt. kan være årsagen, ved jeg ikke - men jeg kan ikke få øje på andre muligheder. Den er i brug masser af steder, og jeg har aldrig hørt om bugs.

Den nye kode ser sådan ud (det er kun array'et af objekt versioner, som er ændret):

(function(){
    if (window.XMLHttpRequest) return;
    var o = null, s,
    a = ["MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP"];
    for (var i=0,j=a.length; i<j; i++) {
        s=a[i];
        try {
            if (o=new ActiveXObject(s))  break;
        }
        catch(e){};
    }
    window.XMLHttpRequest = o ? function(){return new ActiveXObject(s)} : null;
    o = null;
})();
Avatar billede karl-koder Nybegynder
14. august 2008 - 08:28 #7
Ok jeg prøver mig lige frem med den og ser om ikke det skulle hjælpe ;o)

Jeg vender tilbage senere idag når jeg har hørt fra dem der har problemer.
Avatar billede karl-koder Nybegynder
15. august 2008 - 12:03 #8
Så fik jeg afklaret med dem der har haft problemet og det er nu løst. Det viste sig at det ikke var i min kode der var noget galt men nogle instillinger i deres browser der gjorde at det ikke virkede ;o)

Men et spørgsmål ang. MSXML2.XMLHTTP versionerne, hvor henne finder jeg ud af når der kommer en ny version, så jeg kan opdatere koden efter det ?
Avatar billede olebole Juniormester
16. august 2008 - 23:49 #9
Hold af mange grunde et øje tæt klæbet til Microsofts, Mozillas og W3C's sites - så kan du følge med  =)
Avatar billede karl-koder Nybegynder
20. februar 2009 - 00:37 #10
lukker
Avatar billede erikjacobsen Ekspert
20. februar 2009 - 19:31 #11
"men nogle instillinger i deres browser der gjorde at det ikke virkede" ... kunne du berige os med oplysninger om det hvilke indstillinger?
Avatar billede karl-koder Nybegynder
26. februar 2009 - 17:50 #12
Jamen der var tale om brugen af IE6 hvor der var pillet ved indstillingerne ang. javascript og da browseren var blevet nulstillet, virkede det hele om det skulle, mere kan jeg ikke sige for det var den besked jeg fik.
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

IT-JOB

Netcompany A/S

IT Consultant

Capgemini Danmark A/S

IGNITE Graduate Program 2026

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger IT-Supporter til Svanemøllen

Lægemiddelstyrelsen

Løsningsarkitekt