ESP32“ESPAsyncWebServer”PUT Json 有问题。代码中有错误。如何解决?
JavaScript 工作:
async function test() {
var val = JSON.stringify({on: ledState});
xmlHttp.open("GET", "/test?json="+val, true);
xmlHttp.send();
}
JavaScript 不工作:
async function led() {
var val = JSON.stringify({on: ledState});
try {
const response = await fetch("/led", {
method: "PUT",
body: val,
headers: {"Content-Type": "text/plain"}
});
} catch (error) {console.log("Request Failed: " + error);}
}
Web 服务器工作:
server.on("/test", HTTP_GET, [](AsyncWebServerRequest *request){
if (startuart) Serial.println("led");
if (request->hasParam("json")) {
String val = request->getParam("json")->value();
if (startuart) Serial.println(val);
request->send(200, "text/plain", "OK");
} else {
if (startuart) Serial.println("No Json!");
request->send(200, "text/plain", "No Json!\n");
}
});
Web 服务器不工作:
server.on("/led", HTTP_PUT, [](AsyncWebServerRequest *request){
if (startuart) Serial.println("led");
if (request->hasParam("body")) {
String val = request->getParam("body")->value().c_str(); // value().c_str();
if (startuart) Serial.println(val);
request->send(200, "text/plain", "OK");
} else {
if (startuart) Serial.println("No Json!");
request->send(200, "text/plain", "No Json!\n");
}
});
*server.on("/led", HTTP_PUT, [](AsyncWebServerRequest request)
有效,但答案“No Json!”显示。