Avatar billede cmau Nybegynder
08. september 2007 - 16:31 Der er 1 kommentar og
1 løsning

Hvorfor kan xmlHttp.responseText; ikke sættes som return value

Hej eksperter

Hvorfor kan jeg ikke i min funktion, som jeg bruger til ajax lave en kode som denne:
return xmlHttp.responseText;
Den retunere bare undefined, hvorimod hvis jeg skriver alert(xmlHttp.responseText); kommer indholdet.

Hvordan kan man lave noget work-a-round?

Hele min funktion ser således ud:
function ajax(url, loaded) {
    xmlHttp = GetXmlHttpObject();
    if(xmlHttp == null) return;
    xmlHttp.onreadystatechange = function() {
        if(xmlHttp.readyState == 4 || xmlHttp.readyState == 'complete') {
            if(!loaded) {
            return xmlHttp.responseText;
            } else {
                return true;
            }
        }
    };
    xmlHttp.open('POST', url, true);
    xmlHttp.send(null);
}
Avatar billede cmau Nybegynder
08. september 2007 - 16:38 #1
Skrev det hele fra bunden af.
function ajax(url, loaded) {
    xmlHttp = GetXmlHttpObject();
    if(xmlHttp == null) return;
    xmlHttp.open('POST', url, false);
    xmlHttp.send(null);
    return xmlHttp.responseText;
}
Avatar billede olebole Juniormester
08. september 2007 - 20:01 #2
<ole>

Det har absolut intet med AJAX at gøre. AJAX står for 'Asynchronous Javascript And XMLHttpRequest' - og hele idéen er jo, at det skal være en asynkron forespørgsel. I din 'løsning' sætter du request-objektet til at arbejde synkront ... sætte browseren totalt i stå, til responsen er modtaget. Det er det stik modsatte af AJAX  :)

Du kan ikke få et XMLHttpRequest-objekt til at returnere noget, når du bruger AJAX

/mvh
</bole>
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