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

Pagina: 1
Acties:

Onderwerpen


  • Blecchi
  • Registratie: Juni 2008
  • Laatst online: 20-09-2022
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.

[ Voor 1% gewijzigd door RobIII op 16-02-2012 11:03 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
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.

[ Voor 9% gewijzigd door RobIII op 16-02-2012 11:08 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Joolee
  • Registratie: Juni 2005
  • Niet online
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.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:22

crisp

Devver

Pixelated

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

Intentionally left blank