#javascript #xmlhttprequest #http-post
Вопрос:
Я создал страницу для проверки отправки данных в базу данных mysql при нажатии кнопки.
Тест работает, данные добавляются. Но javascript не получает/не отображает ответ от сервера, хотя при захвате пакета Wi-Fi отображается ответ, возвращающийся с кодом http 200 OK и сообщением «Новая запись успешно создана».
На стороне сервера все в порядке, потому что я могу захватить пакет, плюс у меня есть приложение, которое отправляет запросы на публикацию, и оно показывает сообщение «Новая запись…», но мой код этого не делает. Я пытаюсь уже целую вечность, не могу понять, что не так.
Скрипт, который запускается при нажатии кнопки, с некоторыми диагностическими битами:
<script>function buttonScript(element) {
var xhr = new XMLHttpRequest();
var srvrResponse;
var rdyStateHist = "<b>readyState History:</b>";
xhr.onreadystatechange = function() {
srvrResponse=xhr.responseText;
rdyStateHist = rdyStateHist xhr.readyState ", " ;
document.getElementById("displayResult").innerHTML = rdyStateHist "<br><b>Result </b>(length " srvrResponse.length "): " srvrResponse "<br><b>Current readyState:</b> " xhr.readyState "<br><b>Status:</b> " xhr.status;
};
var bodyData = new FormData(); bodyData.append("api_key", "tPmAT5Ab3j7F9");
bodyData.append("sensor", "jscode_test");
bodyData.append("location", "testLoc");
bodyData.append("value1", 1.1);
bodyData.append("value2", 2.2);
bodyData.append("value3", 3.03);
xhr.open("POST", "http://192.168.0.105:8080/post-esp-data.php", true);
xhr.send(bodyData);
}
</script>
Вывод на странице, без статуса или результата:
readyState History:1, 4,
Result (length 0):
Current readyState: 4
Status: 0
Захваченный ответ, поступающий на устройство, отправляющее запрос:
HTTP/1.1 200 OK
Date: Fri, 18 Jun 2021 23:12:58 GMT
Server: Apache/2.4.41 (Unix)
PHP/7.3.10
X-Powered-By: PHP/7.3.10
Content-Length: 31
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html;
charset=UTF-8
New record created successfully
Чего мне не хватает?