我似乎无法接收Javascript的HTTPRequest。我得到了这个HTTP/1.1 200 OK
,但我似乎无法获得我发送的网址。我只想在我的网页上发送链接。
这是我的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 void loop:
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);
答案 0 :(得分:0)
您只是从ESP上的index.php脚本中读取响应的第一行,该脚本通常是您看到的HTTP状态代码,而不是其他内容(除非有其他一些其他内容)您尚未发布的代码)。您需要读取整个HTTP消息以获取响应,特别是正文 - 假设index.php使用正文返回您需要的数据。您可以在此处找到HTTP消息结构的说明:https://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html