Hallo
Ich habe fogenden Code mit PlatformIO
void handleRequest(AsyncWebServerRequest *request, uint8_t *data, size_t
len, size_t index, size_t total)
{
// Handle the incoming data
if (request->method() == HTTP_POST) {
Serial.printf("Got Ajax 1 %d - %d - %d Content Type = %s", len,
index, total, request->contentType().c_str());
if (request->contentType() == "application/json")
{
// Handle JSON data
StaticJsonDocument<200> doc;
DeserializationError error = deserializeJson(doc, data, len);
if (error) {
// Handle deserialization error
return;
}
// Access the JSON data
int key1 = doc["key1"];
int key2 = doc["key2"];
// Process the data as needed
Serial.printf("Got Ajax Json %d - %d - %d \n", key1, key2,
total);
}
if (request->contentType() == "text/plain")
{
// Handle JSON data
StaticJsonDocument<200> doc;
DeserializationError error = deserializeJson(doc, data, len);
Serial.print("Get Json");
if (error) {
Serial.print("Json Error");
return;
}
// Access the JSON data
int key1 = doc["key1"];
int key2 = doc["key2"];
// Process the data as needed
Serial.printf("Got Ajax 2 %d - %d - %d \n", key1, key2, total);
Serial.println( " <-----");
Mein Java Script ist folgender
function toggleCheckbox(element, Value)
{
var myElement = document.getElementById(Value);
var xhr = new XMLHttpRequest();
xhr.open("POST", "/your-endpoint", true);
if(element.checked){
myElement.innerHTML = "On";
var value2 = true;
}
else {
myElement.innerHTML = "Off";
var value2 = false;
}
var value1 = element.id;
var data = JSON.stringify({ key1: value1, key2: value2 });
xhr.send(data);
}
Ich habe im Code von mir aus den Code in main.cpp eingefügt
if (request->contentType() == "text/plain")
weil der request erkennt nicht das es sich um ein JSon Objekt handelt.
Sorry das ich den Code nicht formatiere, ich weiß nicht mehr wie das
ging.
Danke für das Forum aber es wäre hilfreich es ein wenig moderner zu
gestalten. Ich bin schon älter und vergesse.
Martin M. schrieb: > Sorry das ich den Code nicht formatiere, ich weiß nicht mehr wie das > ging. Das steht doch direkt über dem Text-Eingabefeld! Da du im Javascript keinen konkreten Document Type an den Server (ESP) sendest, solltest du dort beim Empfang auch keinen bestimmten Document Type erwarten.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.