乐鑫技术交流
直播中

北上北京

8年用户 867经验值
擅长:嵌入式技术
私信 关注
[问答]

如何使用fetch从ESP8266获取JSON响应?

您好,
我已经创建了一个 ESP8266 网络服务器,它应该在客户端请求时发送一​​个 JSON 对象。该服务器的代码如下所示:
#include  
#include  
#include  
void setup() {
  Serial.begin(115200);
  WiFi.断开连接();
  延迟(10);
  Serial.print(\"连接到\");
  序列号.println(ssid);
  WiFi.begin(ssid, 密码);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    序列号.print(\".\");
  }
  Serial.println(\"\");
  Serial.print(\"连接成功。\");
  序列号.println(\"  
  Serial.print(WiFi.localIP());
  if(MDNS.begin(\"esp8266\")) {
    Serial.println(\"MDNS 响应器启动\");
  }
  server.on(\"/data\", []() {
    server.send(200, \"application/json\", \"{\\\"key\\\": \\\"value\\\"}\"); })
  ;
  服务器.开始();
  Serial.println(\"HTTP 服务器启动\");
}
void loop() {
  server.handleClient();
  MDNS.更新();
然后
我尝试使用 fetch 函数从我的 JS 代码中请求数据。但它会抛出这个错误:
Uncaught (in promise) SyntaxError: Unexpected end of input
    at index.js:8
当我只是从浏览器连接到服务器的数据时,它会在页面上正确显示 JSON 对象。这是我的请求代码:
fetch(\'http://192.168.1.135/data\', {
  method: \'GET\',
  mode: \'no-cors\',
  headers: {
    \'Content-Type\': \'application/json \',
  }
})
  .then(response => response.json())
  .then(data => console.log(data));

更多回帖

发帖
×
20
完善资料,
赚取积分