Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

AJAX request werkt niet; readystate wijzigt niet *

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik heb vandaag zitten prutsen met AJAX. Meer bepaald heb ik geprobeerd om server data te voorschijn te toveren met een POST-request zonder de pagina te herladen. Dit lukt echter niet want het onreadystatechange lijkt niet te werken. Het readyState komt nooit in status 4 maar blijft bij 1 wat betekent dat er nog niets geïnitialiseerd is. Ik heb al verscheidene dingen geprobeerd maar niets lijkt te werken.

Hier is de JavaScript.

JavaScript:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
var xmlHttp;

function shoutOut()
{ 
    xmlHttp = GetXmlHttpObject();
    if (xmlHttp == null)
    {
        alert ("Your browser does not support AJAX!");
        return;
    } 
    var url = "http://vendettafest.be/shout.php";

    xmlHttp.onreadystatechange = stateChanged;
    xmlHttp.open("POST", url, true);
    xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
    // xmlHttp.send('name=' + name + '&msg=' + msg);
    xmlHttp.send('name=kris&msg=ditiseenbericht');
}

function stateChanged() 
{ 
    document.write(xmlHttp.readyState);
    if (xmlHttp.readyState == 4)
    { 
        alert('ja');
        document.getElementById("testje").innerHTML=xmlHttp.responseText;
    } else {
        alert("nee");
    }
}

function GetXmlHttpObject()
{
    var xmlHttp=null;
    try
    {
      // Firefox, Opera 8.0+, Safari
      xmlHttp=new XMLHttpRequest();
    }
    catch (e)
    {
        // Internet Explorer
        try
        {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        }
    catch (e)
        {
            xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    return xmlHttp;
}


Heeft er iemand een idee wat er hier fout loopt? Ik krijg dus telkens de alert met nee erin. Hartelijk dank.

[ Voor 0% gewijzigd door Verwijderd op 30-10-2007 14:44 . Reden: Mijn titelomschrijving is per ongeluk in de mist gegaan! Excuses ]


  • Onbekend
  • Registratie: Juni 2005
  • Nu online

Onbekend

...

Wat is je code in PHP of ASP ?

Speel ook Balls Connect en Repeat


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Wat is de status die je server teruggeeft als je de request 'handmatig' doet? En geef je de juiste mime-type terug? Krijg je geen scripterror ofzo? En wat heb je zelf al gedaan om te debuggen? (Al eens gekeken naar FireBug bijvoorbeeld, die heel erg handig voor dit soort dingen is?)

Verder zie ik niet wat dit in PRG doet (Waar hoort mijn topic?); dus PRG >> WEB en daarbij ik je verzoeken voortaan een beetje een titel te verzinnen die wat minder te raden over laat dan "AJAX"

[ Voor 39% gewijzigd door RobIII op 30-10-2007 14:48 ]

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


Verwijderd

Topicstarter
Mijn code in PHP is de volgende.
<snip>
We zijn geen persoonlijke-debug-service
:|

[ Voor 96% gewijzigd door RobIII op 30-10-2007 14:54 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Euh, ja hallo zeg. Het is hier niet de bedoeling dat wij je code gaan zitten debuggen; je hebt een aantal vragen gehad en daar mag je eerst antwoord op geven. Daarna kun je eventueel relevante code gaan posten. Maar het is hier dus niet de bedoeling dat je je code dumpt en wij het wel effe fixen voor je. Zie ook Kan iemand even?

[ Voor 9% gewijzigd door RobIII op 30-10-2007 14:51 ]

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


Verwijderd

Topicstarter
RobIII schreef op dinsdag 30 oktober 2007 @ 14:46:
Wat is de status die je server teruggeeft als je de request 'handmatig' doet? En geef je de juiste mime-type terug? Krijg je geen scripterror ofzo? En wat heb je zelf al gedaan om te debuggen? (Al eens gekeken naar FireBug bijvoorbeeld, die heel erg handig voor dit soort dingen is?)

Verder zie ik niet wat dit in PRG doet (Waar hoort mijn topic?); dus PRG >> WEB en daarbij ik je verzoeken voortaan een beetje een titel te verzinnen die wat minder te raden over laat dan "AJAX"
Als ik de request handmatig doe krijg ik gewoon wat ik wil. 200 OK
Juiste mime-type? Er wordt niet gecontroleerd op Mime-type; maar UTF-8 is nodig.
Wat ik zelf al gedaan heb om te debuggen? Syntax-fouten staan er niet, ik gebruik hiervoor een IDE.
En ik moet maar 'ns FireBug gaan installeren denk.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op dinsdag 30 oktober 2007 @ 14:59:
Als ik de request handmatig doe krijg ik gewoon wat ik wil.
Juiste mime-type? Er wordt niet gecontroleerd op Mime-type; maar UTF-8 is nodig.
UTF8 is een character encoding, geen mime-type. Je dient "text/xml" als mime-type terug te geven.
Verwijderd schreef op dinsdag 30 oktober 2007 @ 14:59:
Wat ik zelf al gedaan heb om te debuggen? Syntax-fouten staan er niet
Er zijn meer fouten dan syntax fouten ;)
Dat is natuurlijk ook geen garantie dat je code foutvrij is :P
Verwijderd schreef op dinsdag 30 oktober 2007 @ 14:59:
En ik moet maar 'ns FireBug gaan installeren denk.
Dat doe maar eens ja; maar ik zou allereerst maar eens gaan kijken naar je mime-type ;) *HINT*

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


  • Onbekend
  • Registratie: Juni 2005
  • Nu online

Onbekend

...

Werkt dit voorbeeld bij jouw wel?
http://www.w3schools.com/ajax/ajax_source.asp

Zo ja, dan kan je de files hiervan vergelijken met die van jouw.
Zo nee, probeer dat dan eerst aan de praat te krijgen.

Speel ook Balls Connect en Repeat


Verwijderd

Je kunt ook eens naar een ajax library zoeken, prototype heeft er een, xajax, yui etc.

  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Ik kan de exacte links niet meer vinden, maar hier op GoT is regelmatig de opmerking voorbij gekomen m.b.t. het koppelen van het readyState event en de open methode.
code:
1
2
xmlHttp.onreadystatechange = stateChanged;
xmlHttp.open("POST", url, true);

veranderen in
code:
1
2
xmlHttp.open("POST", url, true);
xmlHttp.onreadystatechange = stateChanged;

doet misschien de trick.

Fat Pizza's pizza, they are big and they are cheezy


  • Cartman!
  • Registratie: April 2000
  • Niet online
In je voorbeeld staat nu html ipv xml, weet niet of dat veranderd is maar anders snap ik de mimetype opmerkingen niet ;)

Trouwens, denk er aan dat je een random value toevoegt aan je url, als je dit niet doet zal IE (6 ieder geval) de eerste keer je remote pagina cachen en daarna niet meer goed updaten.
Pagina: 1