[英]get CORS Error when fetch from esp javascript
I set up an ESP32 Webserver which provides me Sensor Values in.json Format.我设置了一个 ESP32 网络服务器,它以.json 格式为我提供传感器值。 In Console i get the Error:
在控制台中我得到错误:
Error: Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://10.0.0.40/sensor .错误:跨域请求被阻止:同源策略不允许读取http://10.0.0.40/sensor的远程资源。 (Reason: CORS header 'Access-Control-Allow-Origin' missing).
(原因:缺少 CORS header 'Access-Control-Allow-Origin')。
Error: Uncaught (in promise) TypeError: NetworkError when attempting to fetch resource.错误:未捕获(承诺中)类型错误:尝试获取资源时出现网络错误。
What do I have to change?我必须改变什么?
// JavaScript source code
fetch('http://10.0.0.40/sensor')
.then(response => response.json())
.then(data => {
var unit0 = data['0']['unit'];
var unit1 = data['1']['unit'];
var temperature = data['0']['value'];
var humidity = data['1']['value'];
document.getElementById("sensortemperature").innerHTML = temperature + unit0;
document.getElementById("sensorhumidity").innerHTML = humidity + unit1;
console.log(temperature + unit0);
})
The error message indicates a CORS error:错误消息指示 CORS 错误:
Error: Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://10.0.0.40/sensor .
错误:跨域请求被阻止:同源策略不允许读取http://10.0.0.40/sensor的远程资源。 (Reason: CORS header 'Access-Control-Allow-Origin' missing).
(原因:缺少 CORS header 'Access-Control-Allow-Origin')。
The ESP32 webserver needs to enable CORS for the browser/client requesting your sensor data. ESP32 网络服务器需要为请求传感器数据的浏览器/客户端启用 CORS。
Your comment states you are using the ESP WebServer
library.您的评论表明您正在使用 ESP
WebServer
库。 This provides an enableCORS()
method (see https://github.com/espressif/arduino-esp32/blob/master/libraries/WebServer/src/WebServer.h#L127 ).这提供了一个
enableCORS()
方法(参见https://github.com/espressif/arduino-esp32/blob/master/libraries/WebServer/src/WebServer.h#L127 )。
So you can enable CORS after you create the webserver like:因此,您可以在创建网络服务器后启用 CORS,例如:
WebServer server();
server.enableCORS(true);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.