Ankündigung

Einklappen
Keine Ankündigung bisher.

Ajax Response mit Server-Status 0

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ajax Response mit Server-Status 0

    Hallo,

    ich bin noch absoluter Anfänger was das Zusammenspiel mit Ajax und PHP betrifft. Nun habe ich mein erstes Projekt erstellt und gleich ein Problem, was sich für mich als unlösbare Aufgabe herausgestellt hat.

    Ich möchte ümit Ajax auf mein PHP-Skript zugreifen. Habe natürlich erst mal zwei Tutorial durchgearbeitet, jedoch bekomme ich keine Rückmeldung vom Server. => Mein XMLHttp-Objekt bleibt beim Status 0 stecken.

    Hier mal ein paar Eckdaten:
    HTML-Seite und Server befinden sich auf Localhost (verschiedene Ports)
    IDE: Netbeans
    XAMPP Control Panel mit Apache-Server


    Mini-Beispiel:

    %%%%%PHP-Skript%%%%%

    <html>
    <head>
    <meta charset="UTF-8">
    <title></title>
    </head>
    <body>
    <?php

    /**
    * Berechnet anhand von Groesse und Gewicht den BMI-Wert
    * @param type $groesse
    * @param type $gewicht
    * @return type Gibt den BMI-Wert zurück
    */
    function calcBMI($groesse, $gewicht)
    {
    $groesse *=$groesse;
    $bmi = $gewicht / $groesse;

    return number_format($bmi,2);
    }

    echo calcBMI($_GET['groesse'], $_GET['gewicht']);

    ?>
    </body>
    </html>


    %%%% JavaScript %%%%

    var xmlhttp;


    function sendReq1()
    {

    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();

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

    //Zu Testzwecken erst mal so...
    var adresse = "http://localhost/Uebung8_PHP/index.php?groesse=1.69&gewicht=200.00";


    xmlhttp.open("GET",adresse,true);


    xmlhttp.onreadystatechange = function(){

    var bmi;
    alert(xmlhttp.status);
    if (xmlhttp.readyState==4 && xmlhttp.status==200) //Hier bleibt der Status auf 0
    {

    bmi = xmlhttp.responseText;
    $("#sprechblase").text("Your BMI is "+bmi);

    }
    };

    xmlhttp.send();


    }


    Ich habe folgende Test schon durchgeführt (Chrome, FF, IE)
    -localhost durch 127.0.0.1 ersetzt
    -Ajax-Objekt über jQuery erzeugt und versucht zu senden
    -Firewall und Antivirus deaktiviert
    -localhost mit Ports versehen
    -Aufruf des Pfades im Browser (funktioniert)
    -Netbeans und XAMPP als Admin starten
    -Logs: php_error.log und Apache error.log angeschaut


    Ja, der Server ist an. Wenn ich die Anfrage über ein Formular abschicke (submit), dann bekomme ich auch meinen Wert zurück.

    Ganz ehrlich- ich bin ratlos und ich möchte doch so gerne, dass es funktioniert....

    Vielen Dank schon mal im Voraus.

    Viele Grüße

  • #2
    Nimm lieber eine Library wie jquery... das Gefummel mit den nativen Browserobjekten ist Murks.

    Dein PHP Script... warum enthält das HTML?
    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

    Kommentar


    • #3
      Das macht Netbeans automatisch wenn man ein PHP-Projekt erstellt.

      Läuft auch nicht wenn ich es weg lasse.

      Mit JQuery hab ich es ja probiert... das läuft auch nicht.

      Kommentar


      • #4
        Ich habe einen Nachtrag:

        Mit IE funktioniert es... - WTF X-D

        Kommentar


        • #5
          Zitat von Alyyn Beitrag anzeigen
          Mit JQuery hab ich es ja probiert... das läuft auch nicht.
          Dann machst du grundsätzlich etwas falsch, denn mit jquery würde ein- und derselbe Code auf allen Browsern laufen.
          Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

          Kommentar

          Lädt...
          X