2016-03-20 19 views
0

Ich kann anscheinend nicht die HTTPRequest von Javascript erhalten. Ich bekomme diese HTTP/1.1 200 OK , aber ich kann nicht scheinen, die URL zu erhalten, die ich übersandte. Ich möchte nur den Link, den ich auf meiner Webseite sende.ESP8266 empfängt keine HTTPRequest

Hier ist mein javascript:

jQuery(function($) {$("button").click(function(){ 
    console.log(this.id); 
    document.getElementById("direction").innerHTML = this.id + " is pressed."; 

    newurl = 'index.php?btn='+ this.id+"?key="+user.key; 
    sendHttpRequest(newurl); 
    }); 
}); 

function sendHttpRequest(update){ 
    var xhttp = new XMLHttpRequest(); 
    xhttp.onreadystatechange = function() { 
     if (xhttp.readyState == 4 && xhttp.status == 200) { 
      console.log(xhttp.responseText); 
     } 
    } 
    xhttp.open("GET",update,true); 
    xhttp.send(null); 

    console.log(update); 
} 

Esp8266 in Leerer Schleife:

WiFiClient client; 
String url = "/index.php?"; 

client.print(String("GET ") + url + " HTTP/1.1\r\n" + 
      "Host: " + host + "\r\n" + 
      "Connection: close\r\n\r\n"); 
    Serial.println("Request Sent"); 


    String request = client.readStringUntil('\r'); 
    Serial.println("headers received"); 
    Serial.println(request); 

Antwort

0

Sie sind nur die erste Zeile der Antwort von dem index.php Skript auf dem ESP Lesung, die Im Allgemeinen wird es sich um den HTTP-Statuscode handeln, den Sie sehen, und sonst nichts (es sei denn, Sie haben einen anderen Code, den Sie nicht veröffentlicht haben). Sie müssen die gesamte HTTP-Nachricht lesen, um die Antwort zu erhalten, insbesondere den body - Annahme, dass index.php den Body verwendet, um die benötigten Daten zurückzugeben. Eine Beschreibung der HTTP-Nachrichtenstruktur finden Sie hier: https://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html

Verwandte Themen