爱普生热敏打印机JavaScript

问题描述 投票:0回答:1

我正在尝试通过网页使用 Epson TM-T20II(热敏打印机)。我已经完成了必要的配置,并且打印机使用给定的软件在我的网络上运行良好。所以我下载了 JS epos print SDK,并尝试运行这个示例代码:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
    <title>TITLE</title>
    <script type="text/javascript" src="../ePOS-Print_SDK/ePOS-Print_SDK_150729E/JavaScript/epos-print-5.0.0.js"></script>
    <script type="text/javascript">
         function buildMessage() {
             //Create an ePOS-Print Builder object
             var builder = new epson.ePOSBuilder();
             //Create a print document
             builder.addTextLang('en')
             builder.addTextSmooth(true);
             builder.addTextFont(builder.FONT_A);
             builder.addTextSize(3, 3);
             builder.addText('Hello,\tWorld!\n');
             builder.addCut(builder.CUT_FEED);
             //Acquire the print document
             var request = builder.toString();
             var address = 'http://192.168.1.65/cgi-bin/epos/service.cgi?devid=99&timeout=1000';
             //Create an ePOS-Print object
             var epos = new epson.ePOSPrint(address);
             epos.onreceive = function (res) {
             //When the printing is not successful, display a message
             if (!res.success) {
                alert('A print error occurred');
                }
             }
             //Send the print document
             epos.send(request);
         }
    </script>
    </head>
    <body>
     <button onclick='buildMessage()'>Run</button>
    </body>
</html>

对于 devid 参数,我尝试了“local_printer”,它是设备的名称, 然后我在配置面板中看到打印机 ID 是 99。不过,它不起作用,我在 cgi 请求上收到了 405 Method not allowed 状态代码。

有什么建议吗?预先感谢。

编辑:

所以,经过一番研究,问题似乎出在 CORS 请求上。出于安全考虑,该请求已进行预检,并且该预检请求未通过访问控制,因为响应中缺少“Access-Control-Allow-Origin”标头。那么如何设置这个标题呢?

javascript printing thermal-printer
1个回答
0
投票

您的编辑提到了 CORS 问题,也许您可以尝试在禁用网络安全的情况下运行 Chrome。这应该告诉 chrome 忽略失败的 CORS 标头:

chromium-browser --disable-web-security

https://www.chromium.org/developers/how-tos/run-chromium-with-flags

© www.soinside.com 2019 - 2024. All rights reserved.