Print Portal:Chrome使用時にクライアントプリンターが表示されない、または印刷ボタンが消える
症状
ChromeでPrint Portalのクライアント印刷を使用している際、クライアントプリンターの一覧が読み込まれず、印刷ボタンがUIから消えてしまうことがあります。
ブラウザのコンソールを見ると、次のようなエラーが表示される場合があります:
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がローカルプリンターの一覧を表示する際、これらのCORSリクエストが発生します。
Print PortalでHTTPSが有効になっていれば、これらのCORSリクエストはChromeでも問題なく動作します。しかし、HTTPSが有効でない場合、これらのCORSリクエストは制限され、完了できません。この問題を解決するには、Chromeブラウザでクライアント印刷を利用する際、Print PortalでHTTPSを有効にする必要があります。
- ご自身のPrint PortalでHTTPSを有効にする方法については、こちらの記事をご参照ください:Print PortalをHTTPSで保護する。
- 弊社の公開Print Portalでこの問題が発生している場合は、以下のURLからデモサイトにアクセスしてください: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として報告されました。