AJAX Bug in Firefox 3.6.15 t.e.m. 3.6.25

Pagina: 1

Acties:
Reacties: 6
Reg. datum: 21-06-2008

Heeft er iemand weet van problemen met het XMLHttpRequest object in bovengenoemde browserversies? Voor zover ik kan zien ligt het probleem in het feit dat het ReadyStateChanged event niet wordt afgevuurd. Deze probelemen kom ik niet tegen in recentere versies van FF (9.0.1, 10.0.1) IE (8.0, 9.0) en Chrome (alle).

de code is te vinden op: *snip*. De functie waar de fout ontstaat. vind je hieronder:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
function createRegistrationRequest(){
            xmlHttpRequest = new XMLHttpRequest();
            xmlHttpRequest.onreadystatechange = function(){
                debug("ReadyState changed.");
                if(xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200){
                    debug('response received');
                    document.getElementById('loadImg').style.display = 'none';
                    var responseXml = xmlHttpRequest.responseXML;
                    processRegistrationResponse(responseXml);
                }
            }
            return xmlHttpRequest;
        }


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
function processRegistrationResponse(response){
        
            var status = response.getElementsByTagName("response")[0].getAttribute("status");
            
            if(status == "MALFORMED_DATA"){
                alert("Je hebt ongeldige gegevens ingegeven. Alle velden zijn verplicht. Kijk je waarden na, en probeer het nog eens.");
                return ;
            } else if (status == "USER_EXISTS") {
                alert('Deze gebruiker bestaat al. Je kan maar een keer stemmen met een zelfde emailadres.');
                return ;
            } else if (status == "IP_EXISTS"){
                alert('Vanaf dit IP-adres werd reeds een stem uitgebracht. Iedereen mag maar een keer stemmen.');
                return ;
            }
            
            document.getElementById('loadImg').style.display = 'none';
            
            var userId = response.getElementsByTagName("id")[0].childNodes[0].nodeValue;
            document.getElementById('userId').value = userId;
        
            //open step 2
            var step2Contents = document.getElementById("step2contents");
            step2Contents.style.display = "block";
            //collapse step1
            var step1Contents = document.getElementById("step1contents");
            step1Contents.style.display = "none";
        }

Ik zie ook nergens fouten opduiken in de error console en in firebug.

Is er hiervoor een workaround?

Alvast bedankt.

RobIII wijzigde deze reactie 16-02-2012 11:03 (1%)



RobIII
DT Admin Doktersteam / Moderator Devschuur®
^ Romeinse 3 ja!
Reacties: 33.828
Reg. datum: 18-12-2001

Ik weet zo uit m'n blote bol niet of er een probleem zou zitten in deze, toch wel prehistorische, versies. Wat ik wél weet is dat ik pas een bug zou vermoeden als ik 't had geïsoleerd in een testcase. Ik heb dan ook je url verwijderd uit je post (het is dan wellicht onbedoeld, het is toch spam).

Ik zou zeggen: begin eens met 't opzetten van een testcase die bestaat uit bare-essentials om je probleem te reproduceren en ga van daar uit verder.

Als je een bug vermoedt zou je eens kunnen zoeken in bugzilla.

RobIII wijzigde deze reactie 16-02-2012 11:08 (9%)

If At First You Don't Succeed Ignore The Docs...

Trotse papa van Luca en Danu! | Pick My Icon!

Reacties: 1.045
Reg. datum: 23-06-2005

Of gebruik een framework waar meer ontwikkeltijd in is gaan zitten, meer browser-specifieke fixes in zitten en waarschijnlijk ook beter gebruik maakt van snelheidsoptimalisaties waar je zelf nooit aan zou kunnen tippen.

Voor de overhead hoef je het tegenwoordig ook niet meer te laten aangezien de libraries steeds kleiner worden en je gebruik kunt maken van een CDN waarvan de meeste mensen toch al een lokale cache versie hebben.

Ik wel, jij ook?



crisp
Devver / Moderator Devschuur®
Let me hammer you today
Reacties: 40.324
Reg. datum: 24-02-2000

Je probleem zit 'm in de volgorde: je moet eerst request.open() doen voordat je een onreadystatechange handler toekent.

Crisp's blog minitracker:
Dè oplossing voor het reiskosten probleem
About the cube again

Pagina: 1




© 1998 - 2013 Tweakers.net B.V. Contact Over Tweakers Jouw privacy Algemene voorwaarden Cookies

Tweakers wordt uitgegeven door De Persgroep en wordt gehost door True

Website van het jaar 2012