Dr. Pest: Ajax funktioniert nicht

Hallo, ich will mich grad in Ajax arbeiten und hab ein kleines Script geschrieben, das einfach den resonseText einer Datei ausgeben soll.
Leider tut sich garnichts.

Weiß jemand Rat?

  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
<html>  
  <head>  
    <title>Test</title>  
  </head>  
  
    <script type="text/javascript">  
  
      var req=null;  
      req = new XMLHttpRequest();  
  
      req.open("GET", "ajax.txt", true);  
      req.onreadystatechange = function()  
      {  
      if (req.readyState == 4)  
       {  
        alert(req.responseText);  
        document.getElementById("first").innerHTML = req.responseText;  
 }  
      }  
  
    </script>  
  
  <body>  
  
<tbody id="first">  
</tbody>  
  
  </body>  
</html>  

  1. Hallo, ich will mich grad in Ajax arbeiten und hab ein kleines Script geschrieben, das einfach den resonseText einer Datei ausgeben soll.
    Leider tut sich garnichts.

    Das heißt noch nicht mal eine Fehlermeldung in der Fehlerkonsole?

    Struppi.

    1. Hallo, ich will mich grad in Ajax arbeiten und hab ein kleines Script geschrieben, das einfach den resonseText einer Datei ausgeben soll.
      Leider tut sich garnichts.

      Das heißt noch nicht mal eine Fehlermeldung in der Fehlerkonsole?

      Struppi.

      Nein keine Fehlermeldung. Aber wenn ich nen text in den Body schreib, wird dieser schon ausgegeben. Also der HTML Teil scheint zu stimmen. Nur tut sich beim Javascript nichts.

      1. Hi,

        Nein keine Fehlermeldung. Aber wenn ich nen text in den Body schreib, wird dieser schon ausgegeben. Also der HTML Teil scheint zu stimmen.

        nein. Zum einen sollte eine Fehlermeldung kommen und zum anderen ist der Quelltext Murks. Wie kommst Du nur darauf, das Element tbody ohne Tabelle anzulegen und mit Text befüllen zu wollen?

        freundliche Grüße
        Ingo

        1. nein. Zum einen sollte eine Fehlermeldung kommen und zum anderen ist der Quelltext Murks. Wie kommst Du nur darauf, das Element tbody ohne Tabelle anzulegen und mit Text befüllen zu wollen?

          freundliche Grüße
          Ingo

          Naja, der alert müsste ja dennoch kommen. Tut er aber nicht, auch nicht, wenn ich das ganze mit tbody usw. weglasse.

      2. Struppi.

        Bitte zitiere nur den Text auf den du Antwortest, Danke.

        Nein keine Fehlermeldung. Aber wenn ich nen text in den Body schreib, wird dieser schon ausgegeben. Also der HTML Teil scheint zu stimmen. Nur tut sich beim Javascript nichts.

        Stimmt, was soll sich deiner Meinung tun?

        Struppi.

  2. Yerf!

    req = new XMLHttpRequest();

    Request-Objekt erzeugen...

    req.open("GET", "ajax.txt", true);

    Request-Ziel festlegen...

    req.onreadystatechange = function()

    Request-Eventhandler festlegen...

    </script>

    und wo wird der Request jetzt abgeschickt?

    req.send(null);

    Gruß,

    Harlequin

    --
    <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
  3. Hallo Dr. Pest,

    es fehlt der Aufruf [code=javascript]req.send(null);[/code].

    Mit freundlichem Gruß
    Micha

    1. Hallo Dr. Pest,

      es fehlt der Aufruf req.send(null)

      Mit freundlichem Gruß
      Micha

      DANKE Micha, das wars. ;-)

  4. Hallo,

    var req=null;
          req = new XMLHttpRequest();

    Die letzte Zeile funktioniert nicht im IE. Wenn also "nichts" funktioniert, machst du es mit diesem Browser? Besser ist eine Weiche:

      
      var browser = navigator.appName;  
      if(browser == "Microsoft Internet Explorer")  
      {  
        req = new ActiveXObject("Microsoft.XMLHTTP");  
      }  
      else  
      {  
        req = new XMLHttpRequest();  
      }  
    
    

    req.open("GET", "ajax.txt", true);

    Datei lesen? Funktioniert das mit dem FF?

    Kalle

    1. Yerf!

      Die letzte Zeile funktioniert nicht im IE.

      Betrifft nur IEs < Version 7

      Besser ist eine Weiche:

      Ja, aber nicht so (Abfragen auf Browsernamen sind Fehleranfällig und unnötig). Besser diese Version (von mozilla.org):

      if (window.XMLHttpRequest) { // Mozilla, Safari, ...  
          http_request = new XMLHttpRequest();  
      } else if (window.ActiveXObject) { // IE  
          http_request = new ActiveXObject("Microsoft.XMLHTTP");  
      }
      

      Die geht dann auch in einem IE7 mit deaktivierten ActiveX.

      Gruß,

      Harlequin

      --
      <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
    2. Die letzte Zeile funktioniert nicht im IE. Wenn also "nichts" funktioniert, machst du es mit diesem Browser? Besser ist eine Weiche:

      Dr. Pest testet im firefox insofern braucht er sie nicht unbedingt, aber deine Variante ist nicht optimal.

      var browser = navigator.appName;

      was hat diese Eigenschaft damit zu tun, was der Browser kann oder nicht?

      if(browser == "Microsoft Internet Explorer")

      Wieso testet du hier nicht einfach ob der Browser ein XMLHttpRequest Objekt erzeugen kann?

      var req = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");  
      
      

      (je nach dem welche IE Versionen man untersützen möchte, kann diese Abfrage auch noch erweitert werden.

      req.open("GET", "ajax.txt", true);

      Datei lesen? Funktioniert das mit dem FF?

      Auch im IE.

      Struppi.

      1. Hallo, Struppi,

        var req = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");

          
        danke, konnte meinen Code damit reduzieren.  
          
        Kalle