ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Chrome 外网访问本地 Lodop 打印服务完整解决方案

2026/8/12 21:25:50 拓冰建站 浏览量
Chrome 外网访问本地 Lodop 打印服务完整解决方案

前端打印代码里

if(lodopPrint.getLodop()){LODOP=lodopPrint.getLodop();letcount=LODOP.GET_PRINTER_COUNT();}else{notification.error({description:'请启动打印软件',duration:5,message:<span style={{color:'#f00'}}>Error</span>,style:{color:'#f00'}})}

lodopPrint.getLodop()这句判断,用外网 IP 或域名访问时会返回 false,查看浏览器控制台输出,会看到:

‘http://localhost:18000/CLodopfuncs.js?priority=0’ from origin
‘http://example.com:8888’ has been blocked by CORS policy: The
request client is not a secure context and the resource is in
more-private address spaceloopback

问题背景

当 Web 应用部署在外网服务器(如http://example.com:8888),但打印功能依赖用户本地的 Lodop 客户端时,浏览器会因安全策略阻止跨域访问localhost:18000,导致getLodop()返回false

问题分析

  1. 跨域限制:浏览器禁止 HTTP 页面访问本地 loopback 地址
  2. 安全策略:Chrome 要求访问本地服务必须是 HTTPS 或明确允许的不安全源
  3. Lodop 特性:作为本地客户端软件,必须在每个用户电脑上安装

解决方案:启用 Chrome 安全设置

核心思路

通过 Chrome 的Insecure origins treated as secure设置,允许特定 HTTP 域名访问本地服务。

详细步骤

步骤 1:打开 Chrome 实验性功能页面
  1. 打开 Chrome 浏览器
  2. 在地址栏输入:
    chrome://flags/#unsafely-treat-insecure-origin-as-secure
步骤 2:启用并配置
  1. 找到“Insecure origins treated as secure”选项
  2. 从默认的“Disabled”改为“Enabled”
  3. 在下方的输入框中添加你的域名:
    http://example.com:8888
  4. 如果需要多个域名,用逗号分隔:
    http://example.com:8888,http://other-domain.com:8080
步骤 3:重启浏览器

点击右下角的“Relaunch”按钮,Chrome 会自动重启使设置生效。

亲测可用!!