Print Portal:在 Chrome 瀏覽器中無法看到用戶端印表機或列印按鈕消失
症狀
在 Chrome 瀏覽器中使用 Print Portal 的用戶端列印時,用戶端印表機清單無法載入,且列印按鈕可能會從介面上消失。
查看瀏覽器主控台時,您可能會看到如下錯誤訊息:
Access to XMLHttpRequest at 'http://127.0.0.1:5952/Client/GetId/?_=1645721935000' from origin 'http://print.seagullscientific.com' has been blocked by CORS policy: The request client is not a secure context and the resource is in more-private address space `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 或更新版本。
解決方法
這個錯誤訊息是由於一項名為 Private Network Access 的功能所導致(以前稱為 CORS-RFC1918),當網站不是以安全協定運行時,會限制網站向私人網路發送請求的能力。當 Print Portal 嘗試取得本機印表機清單以顯示在 Print Portal 介面時,就會發出這類 CORS 請求。
如果 Print Portal 已啟用 HTTPS,這些 CORS 請求在 Chrome 中可以正常運作。但若未啟用 HTTPS,這些 CORS 請求現在會被限制,無法完成。要解決這個問題,當您在 Chrome 瀏覽器中使用用戶端列印時,Print Portal 必須啟用 HTTPS。
- 若要為您的 Print Portal 啟用 HTTPS,請參考這篇文章:使用 HTTPS 保護 Print Portal。
- 如果您在我們的公開 Print Portal 上遇到此問題,請使用以下網址存取我們的 Print Portal 示範網站:https://print.seagullscientific.com/
其他資源
如需更多有關 Private Network Access 及其變更的資訊,請參考以下文章:
- 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 回報