Websocket 如何从HTTPS网站向本地网络发出HTTP请求?

Websocket 如何从HTTPS网站向本地网络发出HTTP请求?,websocket,https,cross-domain,mixed-content,Websocket,Https,Cross Domain,Mixed Content,让我们假设HTTPS下有一个网站,在该网站中,用户可以设置本地机器的IP(本例中为热敏打印机)。用户如何通过其设备使用网站在打印机上打印内容 用户必须仅使用热敏打印机能够打印的本地网络下的网站 打印机中有一个用于通信的http服务器 此时,HTTPS网站如何向本地热敏打印机发送HTTP请求?假设您希望这是任何用户输入的变量,并且任何网络上的任何用户都能够访问自己的打印机,则需要在前端执行该请求。这样,每个用户都可以在自己的网络上访问打印机 这基本上给了你一个选择。Javascript。因此,如果

让我们假设HTTPS下有一个网站,在该网站中,用户可以设置本地机器的IP(本例中为热敏打印机)。用户如何通过其设备使用网站在打印机上打印内容

用户必须仅使用热敏打印机能够打印的本地网络下的网站

打印机中有一个用于通信的http服务器


此时,HTTPS网站如何向本地热敏打印机发送HTTP请求?

假设您希望这是任何用户输入的变量,并且任何网络上的任何用户都能够访问自己的打印机,则需要在前端执行该请求。这样,每个用户都可以在自己的网络上访问打印机

这基本上给了你一个选择。Javascript。因此,如果您想要一个包含一些变量的存储请求,可以从DOM中获取javascript存储变量,然后发布一个获取请求 下面是一个示例函数

// Example POST method implementation:
async function postData(url = '', data = {}) {
  // Default options are marked with *
  const response = await fetch(url, {
    method: 'POST', // *GET, POST, PUT, DELETE, etc.
    mode: 'cors', // no-cors, *cors, same-origin
    cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached
    credentials: 'same-origin', // include, *same-origin, omit
    headers: {
      'Content-Type': 'application/json'
      // 'Content-Type': 'application/x-www-form-urlencoded',
    },
    redirect: 'follow', // manual, *follow, error
    referrerPolicy: 'no-referrer', // no-referrer, *no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url
    body: JSON.stringify(data) // body data type must match "Content-Type" header
  });
  return response.json(); // parses JSON response into native JavaScript objects
}

postData('https://example.com/answer', { answer: 42 })
  .then(data => {
    console.log(data); // JSON data parsed by `data.json()` call
  });
你可能因为CORS而挣扎。 你可以在这里找到深入的讨论


简言之,您需要修改获取头以获得正确的凭据、模式等,如上面代码段中的注释所示。

这就是我要做的,问题是执行JavaScript的网站是HTTPS,而我必须发布到的打印机的数据是HTTP