[英]Can´t make POST request from VUE to ESP32 https server
我正在尝试从 vue 网络应用程序向 ESP32 https 服务器发出 POST 请求。 由于自签名证书,该请求始终被 CORS 阻止。
我试过了:
rejectUnauthorized:
的自定义 https rejectUnauthorized:
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"
使用 curl 或邮递员发出请求工作正常!! 这就像浏览器或vue的问题。
const httpsAgent = new https.Agent({
rejectUnauthorized: false,
});
axios.post(`https://192.168.4.1/config?ssid=${this.ssid}&ssidkey=${this.password}`, { httpsAgent })
.then((res) => {
...
});
目标是首先通过在 AP 模式下直接连接到 ESP32 来配置我的 WiFi 凭据。 如果我使用 curl 或 Postman 使请求正常工作,ESP32 会接收 WiFi 凭据并连接到我的路由器,但我无法使用 vue Web 应用程序进行相同的操作...
您可以在 mozilla 开发人员页面上找到有关 CORS 机制如何工作的完整详细信息: https : //developer.mozilla.org/en-US/docs/Web/HTTP/CORS
综上所述,浏览器会自动执行一个带有方法 OPTIONS 的 HTTP 请求,其 url 与您对服务器的原始请求的 url 相同,并且此请求无法避免。 浏览器期望此请求以状态 200 和 CORS 标头响应(例如: Access-Control-Allow-Origin: http://foo.example Access-Control-Allow-Methods: POST, GET, OPTIONS Access-Control-Allow-Headers: X-PINGOTHER, Content-Type Access-Control-Max-Age: 86400
)
一旦收到对方法 OPTIONS 的响应并且对浏览器看起来有效,您的原始请求就会由浏览器执行。
因此,您需要配置您的服务器以响应带有 cors 标头的 options 方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.