我正在尝试通过网页使用Epson TM-T20 II(热敏打印机)。我已经完成了必要的配置,打印机在我的网络上使用给定的软件工作正常。所以我下载了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方法不允许的状态码。
有什么建议吗?先谢了。
编辑:
因此,经过一些研究,似乎问题来自CORS请求。该请求是出于安全考虑而进行的预处理,由于响应中缺少“Access-Control-Allow-Origin”标头,因此该预处理请求不会传递访问控制。那么我该如何设置这个header呢?
1条答案
按热度按时间sshcrbum1#
由于您的编辑提到了CORS问题,也许您可以尝试在禁用网络安全的情况下运行Chrome。这应该告诉Chrome忽略失败的CORS头:
https://www.chromium.org/developers/how-tos/run-chromium-with-flags