我试图从我的ESP32上传一个名为'data'的变量到托管在异步web服务器上的网页,但我找不到这样做的方法。
String data = "text";
const char index_html[] PROGMEM = R"rawliteral(
<!DOCTYPE HTML><html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<p>%data%</p>
</body>
</html>)rawliteral";
server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
request->send(200, "text/html", index_html);
});
server.on("/data", HTTP_GET, [](AsyncWebServerRequest *request){
request->send(200, "text/plain", data);
});
该变量在网页上没有正确显示,而只是显示%data%。
感谢您的帮助。
所以我自己弄清楚了,这里是正确的代码,以防其他人对这个非常具体的任务感兴趣:
String data = "text";
const char index_html[] PROGMEM = R"rawliteral(
<!DOCTYPE HTML><html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body { text-align:center; }
.vert { margin-bottom: 10%; }
.hori{ margin-bottom: 0%; }
</style>
</head>
<body>
<p>%DATA%</p>
</body>
</html>)rawliteral";
String processor(const String& var){
if (var == "DATA"){
return String(data);
}
return String();
}
server.on("/", HTTP_GET, [](AsyncWebServerRequest * request) {
request->send_P(200, "text/html", index_html,processor);
});