• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

XMLHttpRequest и POST-запрос

Vovka

Member
Доброго времени суток!

Что-то не получается принять post-запрос с HTML-странички! Вот основные моменты:
HTML:
Код:
var xhttp=new XMLHttpRequest();
xhttp.onreadystatechange=function(){
  if(xhttp.readyState==4&&xhttp.status==200){alert(xhttp.responseText);}
};
xhttp.open("POST","192.168.1.5/test",true);
xhttp.send("t=1234567890");
ESP8266:
Код:
ESP8266WebServer HTTP(80);

void handleNotFound()
{
HTTP.send(200, "text/plain", "ERROR");
}

void Test()
{
HTTP.send(200, "text/plain", "OK");
}

HTTP.onNotFound(handleNotFound);
HTTP.on("/", handleRoot);    // Главная страница
HTTP.on("/test", HTTP_POST, Test );
В итоге выводит ERROR. Т.е. в esp не обрабатывается POST-запрос.
Как исправить?
 

Vovka

Member
в GET данные не влезут
А что за проблема когда POST-запрос? Функция есть, а почему то не срабатывает...
 

CodeNameHawk

Moderator
Команда форума
в GET данные не влезут
Что вы там такого передаете?
Учитываете, что
Пример GET-запроса. Информация передаётся прямо в заголовке.

GET /blog/?name1=value1&name2=value2 HTTP/1.1
Host: htmlacademy.ru

Пример POST-запроса. Информация передаётся в теле запроса:

POST /blog/ HTTP/1.1
Host: htmlacademy.ru
name1=value1&name2=value2
 

CodeNameHawk

Moderator
Команда форума
Я скопировал из инета, через передачу XML, примерно так
HTML:
const char Index_html[] PROGMEM = R"=====(
<!DOCTYPE html>
<html>
<head>
  <link rel="stylesheet" href="/style.css" type="text/css" />
  <meta http-equiv="Content-type" content="text/html; charset=utf-8">
  <title>Termometry</title>
  <script>
var xmlHttp=createXmlHttpObject();
function createXmlHttpObject(){
if(window.XMLHttpRequest){
xmlHttp=new XMLHttpRequest();
}else{
xmlHttp=new ActiveXObject('Microsoft.XMLHTTP');
}
return xmlHttp;
}
function process(){
if(xmlHttp.readyState==0 || xmlHttp.readyState==4){
xmlHttp.open('PUT','xml',true);
xmlHttp.onreadystatechange=handleServerResponse;
xmlHttp.send(null);
}
setTimeout('process()',3010);
}
function handleServerResponse(){ if(xmlHttp.readyState==4 && xmlHttp.status==200){
xmlResponse=xmlHttp.responseXML;
xmldoc = xmlResponse.getElementsByTagName('podloga');
message = xmldoc[0].firstChild.nodeValue;
document.getElementById('Podloga').value=message;
xmldoc = xmlResponse.getElementsByTagName('kotlownia');
message = xmldoc[0].firstChild.nodeValue;
document.getElementById('Kotlownia').value=message;
xmldoc = xmlResponse.getElementsByTagName('podworz');
  
...
Если не ошибаюсь то это взято у Третьякова
https://esp8266-arduinoide.ru/ajax/
 
Последнее редактирование:
Сверху Снизу