如何从 HTTPS 网站向 LocalNetwork 发出 HTTP 请求?
How to make a HTTP request to a LocalNetwork from a HTTPS WebSite?
假设有一个HTTPS 下的网站,用户可以在该网站中设置本地机器(在本例中为热敏打印机)的IP。用户如何通过他的设备使用网站在该打印机上打印内容?
用户只能在热敏打印机能够打印的本地网络下使用网站。
打印机中有一个用于通信的 http 服务器。
此时 HTTPS 网站如何向本地热敏打印机发送 HTTP 请求?
假设您希望这是一个任何用户输入的变量,并且任何网络上的任何用户都能够访问他们自己的打印机,您需要它在前端执行。这样每个用户都可以在他们自己的网络上访问打印机。
这基本上给了你一个选择。 Javascript。因此,如果您想要一个带有一些变量的存储请求,您可以从 DOM 中获取 javascript 存储变量,然后 post 获取请求 https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch
这是一个示例函数
// 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 而苦苦挣扎。
您可以在此处找到深入讨论 https://javascript.info/fetch-crossorigin
简而言之,您需要修改提取 headers 以获得正确的凭据、模式等,如上述代码段的注释中所示。
假设有一个HTTPS 下的网站,用户可以在该网站中设置本地机器(在本例中为热敏打印机)的IP。用户如何通过他的设备使用网站在该打印机上打印内容?
用户只能在热敏打印机能够打印的本地网络下使用网站。
打印机中有一个用于通信的 http 服务器。
此时 HTTPS 网站如何向本地热敏打印机发送 HTTP 请求?
假设您希望这是一个任何用户输入的变量,并且任何网络上的任何用户都能够访问他们自己的打印机,您需要它在前端执行。这样每个用户都可以在他们自己的网络上访问打印机。
这基本上给了你一个选择。 Javascript。因此,如果您想要一个带有一些变量的存储请求,您可以从 DOM 中获取 javascript 存储变量,然后 post 获取请求 https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch 这是一个示例函数
// 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 而苦苦挣扎。 您可以在此处找到深入讨论 https://javascript.info/fetch-crossorigin
简而言之,您需要修改提取 headers 以获得正确的凭据、模式等,如上述代码段的注释中所示。