Print Portal:在使用 Chrome 时无法看到客户端打印机或打印按钮消失
症状
在 Chrome 浏览器中使用 Print Portal 的客户端打印功能时,客户端打印机列表无法加载,打印按钮可能会从界面上消失。
查看浏览器控制台时,您可能会看到如下错误:
访问 XMLHttpRequest 'http://127.0.0.1:5952/Client/GetId/?_=1645721935000' 时被 CORS 策略阻止,来源为 'http://print.seagullscientific.com': 请求客户端不是安全上下文,且资源位于更私有的地址空间 `local`。 core-libraries.min.js?buildNumber=175838:2
GET http://127.0.0.1:5952/Client/GetId/?_=1645721935000 net::ERR_FAILED
环境
BarTender 2021 及更高版本
启用了客户端打印的 Print Portal
Chrome v98 或更高版本。
解决方法
该错误信息来源于一项名为“私有网络访问”的功能(之前称为 CORS-RFC1918),它会限制网站在未使用安全协议运行时,向私有网络发送请求的能力。当 Print Portal 需要请求本地打印机列表以在界面上显示时,就会发起这样的 CORS 请求。
如果 Print Portal 启用了 HTTPS,这些 CORS 请求在 Chrome 浏览器中可以正常工作。但如果未启用 HTTPS,这些 CORS 请求现在会被限制,无法完成。要解决此问题,使用 Chrome 浏览器进行客户端打印时,Print Portal 需要启用 HTTPS。
- 如需为您的 Print Portal 启用 HTTPS,请参考此文章:为 Print Portal 启用 HTTPS 安全访问。
- 如果您在使用我们的公共 Print Portal 时遇到此问题,请使用以下网址访问我们的 Print Portal 演示站点:https://print.seagullscientific.com/
更多资源
如需了解更多关于私有网络访问及其变更的信息,请参阅以下文章:
- https://developer.chrome.com/blog/private-network-access-preflight/
- https://developer.chrome.com/blog/private-network-access-update/
- https://web.dev/cors-rfc1918-feedback/
仅限内部信息
该问题首次报告为 BUG-3348