上个周末的时候陆续有门店反馈收银系统的打印功能坏了,点击打印一直提示安装插件,但是实际上插件已经安装了。之前也遇到过这种情况,无非就是 360 等杀毒软件把这个打印插件当作危险软件给禁用了或者卸载了。但是一般只是个别店的情况,像周末这种好几家门店都遇到打印问题,这就不正常了。

提示安装打印控件.png


打印这块的代码最近的版本都没人动它,因为无相关需求,所以程序代码上出问题的概率几乎为零,更多考虑的是配置问题,或电脑运行环境的原因。公司收银系统的打印用的是 C-LODOP 插件,通过远程协助,发现门店的电脑上都是有安装此插件的,并且也都正常运行。在尝试了卸载重装之后,问题依旧存在。然后我就在开发环境进行了调试,发现开发环境居然是好的,打印一切正常。于是登录线上系统进行排查,通过控制台发现了一个错误,错误信息如下

Access to script at 'http://localhost:1234/CLodopfuncs.js' from origin 'http://myservice.com' has been blocked by CORS policy: The request 
client is not a secure context and the resource is in more-private address space `loopback`.


看到这错误消息,说明是跨域请求的问题。因为存在跨域问题,所以访问不到打印插件需要的 JS 文件,所以插件初始化失败了,也就导致点击打印时一直提示安装插件。为什么收银系统运行了这么久偏偏这个时候出问题,之前咋没问题?原因是浏览器最近升级导致的,安全策略更加严格了。因为我们的收银系统没有使用 https 协议,所以访问本地服务文件时受限了。至于为什么不使用 https ,问我们后端吧 [笑哭]


因为没有安全证书,所以只能采用临时解决方案,修改浏览器安全策略。具体操作如下:

1- Edge地址栏输入 edge://flags(如果是谷歌浏览器则输入 chrome://flags/)

2- 搜索配置项: Insecure origins treated as secure

3- 将配置的禁用改为启用

4- 启用后在下方输入框中填写被允许的域名(多个域名用英文逗号分隔):http://myservice.com,http://localhost:12345

5- 重启浏览器

6- 重启后浏览器会提示安全策略被修改,有安全风险,直接忽略

7- 浏览器会提示是否允许访问本地设备,点击【允许】


安全策略设置.png

本文最后更新于 2025-12-29 18:03:57DEV-TOOLS
天生我材必有用,千金散尽还复来~~
作者:鄢云峰 YYF声明:转载请注明文章出处地址:https://yanyunfeng.com/article/88
评论
提交
来发第一个评论啦~