Я хочу отправлять и получать данные с Nodemcu , работает нормально, если я вхожу в адресную строку браузера, но не на собственной веб-странице
т.е. если я enter 192.168.1.14/But1
(или Бут2) работает нормально
Но используя веб-страницу ниже, он показывает статус returns
0 И no data
.
NodeMCU получает ОК, как показано на последовательном мониторе
Я хочу, чтобы несколько различных страниц обращались к веб-серверу, поэтому не хочу отправлять их с NodeMcu , чтобы их веб-адрес не совпадал с сервером
NodeMCU программа
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
// Replace with your network
const char* ssid = "xxxxxxxxxx";
const char* password = "xxxxxxxxxxxxx";
ESP8266WebServer server(80); //instantiate server at port 80 (http port)
void setup(void) {
delay(1000);
Serial.begin(115200);
WiFi.begin(ssid, password); //begin WiFi connection
Serial.println("");
// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
server.on("/But1", []() {
Serial.println("But1");
server.send(200, "text/html", "But1_Click");
});
server.on("/But2", []() {
Serial.println("But2");
server.send(200, "text/html", "But2_Click");
});
server.begin();
Serial.println("Web server started!");
}
void loop(void) {
server.handleClient();
}
Веб-страница
<!DOCTYPE html>
<html>
<head>
<script>
function sendAJAX(name) {
var myRequest = new XMLHttpRequest();
myRequest.open('GET', 'http://192.168.1.14/' + name, true);
myRequest.onreadystatechange = function() {
if (myRequest.readyState === 4) { // && this.status == 200) {
document.getElementById('readyState1').innerHTML =
myRequest.readyState;
document.getElementById('status1').innerHTML = this.status;
document.getElementById('ajax-content').innerHTML =
myRequest.responseText;
}
};
myRequest.send();
}
</script>
</head>
<body>
<h1>AJAX Test</h1>
<button onclick="sendAJAX('But1')">Button 1</button>
<button onclick="sendAJAX('But2')">Button 2</button>
<p id="readyState1">Ready</p>
<p id="status1">Status</p>
<div id="ajax-content">Reply</div>
</body>
</html>