В настоящее время мы запускаем приложение реагирования и хотим отправить контрольный сигнал на наш термопринтер Epson, который принимает сообщение http.
Код:
const heartBeatXml = `<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<epos-print xmlns="http://www.epson-pos.com/schemas/2011/03/epos-print">
</epos-print>
</s:Body>
</s:Envelope>`;
return axios.post(`https://${ip}/cgi-bin/epos/service.cgi?devid=${deviceName}&timeout=3000`, heartBeatXml)
.then(({data}) => {
return data.includes('success="true"');
})
.catch(() => {
return false;
});
Но в Chrome мы получаемследующая ошибка:
net::ERR_CERT_AUTHORITY_INVALID
Однако, если мы перейдем к https://my_printer_ip, Chrome выдаст вам предупреждение, и если вы решите продолжить, то это сработает (думаю, что-то вроде их принятияподписанный сертификат?).
Я видел решение, где вы можете запустить chrome в ignore-certificate-errors, но есть ли другое решение?Принтер находится в локальной сети, поэтому не обращайте внимания на сертификаты.