chil14r: XMLHttpRequest Beispiel 2

problematische Seite

Hallo liebe SelfHTML Nutzer,

erstmal einen großen Dank für die vielen Inhalte, die ihr hier bereitstellt. Der Beitrag zum AJAX XMLHttpRequest hat mir eine super Einleitung geliefert. Doch leider ist das Beispiel2 zur Benutzung von PHP und einem HTTP POST nicht funktionabel. Das Debugging was ich seither versucht habe hat mir keine Hinweise geliefert warum der Beispielcode nicht lauffähig ist. Bis jetzt habe ich den Code auf Ubuntu / Apache/2.4.18 und SLES 12 mit Firefox 46 versucht zum laufen zu bekommen.

Interessanterweise funktioniert der Code mit der GET Methode, nur mit POST wird kein Objekt zum PHP übermittelt. Woran könnte das liegen ?

Könnte bitte jemand den Beispielcode testen bzw. korrigieren ? Vielen Dank! Tom

  1. problematische Seite

    Tach!

    Interessanterweise funktioniert der Code mit der GET Methode, nur mit POST wird kein Objekt zum PHP übermittelt. Woran könnte das liegen ?

    Hast du mal die Entwicklertools im Browser geöffnet und geschaut, ob da Hinweise zur Fehlfunktion zu sehen sind?

    dedlfix.

    1. problematische Seite

      Tach!

      Interessanterweise funktioniert der Code mit der GET Methode, nur mit POST wird kein Objekt zum PHP übermittelt. Woran könnte das liegen ?

      Hast du mal die Entwicklertools im Browser geöffnet und geschaut, ob da Hinweise zur Fehlfunktion zu sehen sind?

      dedlfix.

      dedlfix.

      Tach auch, danke für deine Antwort. Ja das habe ich bereits getan und es gibt keine Fehlermeldung aber:
      var_dump($_POST) im PHP ist leer
      ajax.responseText ist leer

      d.h. keine Kommunikation zwischen Javascript und PHP

  2. problematische Seite

    Wenn der send-Methode ein String übergeben wird, setzt der Browser den Content-Type des Post-Requests automatisch auf text/plain. Ich weiß nicht, ob PHP daraus dann trotzdem ein $_POST-Array baut. Ich würde stattdessen ein FormData-Objekt senden, dann setzt der Browser auch den Content-Type auf multipart/form-data.

    const formData = new FormData();
    formData.append('username', document.getElementById("username").value);
    
    const request = new XMLHttpRequest();
    request.open('POST','usernamecheck.php');
    request.send(formData);
    request.addEventListener('load', event => { /* ... */ });
    
    1. problematische Seite

      Ich habe die Beispiele in dem Artikel ein wenig poliert und den geschichtlichen Teil weiter nach hinten verfrachtet.