FrankMe: xmlhttp.status = 0

Hallo, ich möchte versuchen ein Test-Ajax-Projekt zu machen, erhalte aber stets den xmlhttp.status = 0 zurück. Warum ist der Status = 0?

test.html:

<!DOCTYPE HTML>
<html lang="de">
<head>
<meta charset="utf-8" />
<title>JS Übung</title>
</head>

<body >
<label>Passwort: <input type="password" size="10" value="" oninput="testekennwortqualitaet(this.value)" /></label>
<span id="sicherheitshinweise">Bitte ein Passwort eingeben</span>
</body>

<script>
function testekennwortqualitaet(inhalt)
{
    if (inhalt=="")
    {
        document.getElementById("sicherheitshinweise").innerHTML="keine Eingabe da";
        return;
    }
    if (window.XMLHttpRequest)
    {
        // AJAX nutzen mit IE7+, Chrome, Firefox, Safari, Opera
        xmlhttp=new XMLHttpRequest();
    }
    else
    {
        // AJAX mit IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
    {
        console.log("xmlhttp.readyState==" + xmlhttp.readyState);
        console.log("xmlhttp.status==" + xmlhttp.status);
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            document.getElementById("sicherheitshinweise").innerHTML=xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET","kennworttesten.php?q="+inhalt,true);
    xmlhttp.send();
}
</script>
</html>

kennworttesten.php:

<?php
echo 'TEST';
?>
--
www.mehlhop.com
  1. Hallo,

    ....

    das geht kürzer:
    ….

    Gruß
    Kalk

  2. Hey,

    ''

    Gruß
    Jo

  3. Console:

    --
    www.mehlhop.com
    1. Hallo,

      Console:

      Zitat von der von dir angegebenen Quell-Webseite:

      Dieses Script muss mit dem Dateinamen „kennworttesten.php“ gespeichert und auch auf den Server übertragen werden.

      Gruß
      Kalk

      1. Da ich mit xampp auf'n eigenen Rechner arbeite muss ich's nicht auf'n Server laden. Es liegt im selben Verzeichnis wie die aufrufende test.html.

        1. Hallo FrankMe,

          Da ich mit xampp auf'n eigenen Rechner arbeite muss ich's nicht auf'n Server laden. Es liegt im selben Verzeichnis wie die aufrufende test.html.

          Rufe test.html mal über den Apache in XAMPP auf (also über HTTP), jetzt geht es ja über das Dateisystem (file://) und das scheint nicht zu klappen – der Browser meckert ja über Cross-Origin, also hier zwischen file- und http-Protokoll.

          Gruß
          Julius

  4. @@FrankMe

        else
        {
            // AJAX mit IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
    

    Ernsthaft jetzt?

    LLAP 🖖

    --
    “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
    1. @@ Gunnar Bittersmann

          else
          {
              // AJAX mit IE6, IE5
              xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
          }
      

      Ernsthaft jetzt?

      Accessibility und Nutzerfreundlichkeit. Wär doch schade wenn die fertige Seite nicht mit allen gängigen Browsern funktionieren würde.

      Gruß
      Jo

      P.s. Das konnte ich mir jetzt nicht verkneifen.

      1. Nimm das doch nicht so genau, ich habe einfach ein Beispiel von www.html-seminar.de kopiert.

        --
        www.mehlhop.com
        1. Hey,

          Nimm das doch nicht so genau, ich habe einfach ein Beispiel von www.html-seminar.de kopiert.

          Dann kopier lieber von hier.

          Gruß
          Jo

  5. Versuch mal:

    <!DOCTYPE HTML>
    <html lang="de">
    <head>
    <meta charset="utf-8" />
    <title>JS Übung</title>
    </head>
    
    <body >
    <label>Passwort: <input type="password" size="10" value="" oninput="testekennwortqualitaet(this.value)" /></label>
    <span id="sicherheitshinweise">Bitte ein Passwort eingeben</span>
    </body>
    
    <script>
    function testekennwortqualitaet(inhalt)
    {
        if (inhalt=="")
        {
            document.getElementById("sicherheitshinweise").innerHTML="keine Eingabe da";
            return;
        }
        if (window.XMLHttpRequest)
        {
            // AJAX nutzen mit IE7+, Chrome, Firefox, Safari, Opera
            xmlhttp=new XMLHttpRequest();
        }
        else
        {
            // AJAX mit IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
    
    xmlhttp.open("GET","kennworttesten.php?q="+inhalt,true);
    
        xmlhttp.onreadystatechange=function()
        {
            console.log("xmlhttp.readyState==" + xmlhttp.readyState);
            console.log("xmlhttp.status==" + xmlhttp.status);
            if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
                document.getElementById("sicherheitshinweise").innerHTML=xmlhttp.responseText;
            }
        }
        
        xmlhttp.send();
    }
    </script>
    </html>
    

    Hatte ich doch letztens schon.

    Gruß
    Jo

    1. Hallo Jo,

      danke für den Link und den Tipp. Leider hilft die Umstellung der Reihenfolge auch nicht das Problem zu lösen.

      Grüße, Frank

  6. Ich habe das Problem lösen können. Die beiden Dateien lagen nicht im richtigen Pfad entsprechend php.ini.

    Jetzt geht es. Danke für die Hilfe! :-)