【解決方法】DOMException「サポートされているソースが見つからなかったため、ロードに失敗しました」の原因と対処法
エラーの概要
音声や動画などのメディアリソースを読み込む際に発生する「DOMException: Failed to load because no supported source was found(サポートされているソースが見つからなかったため、ロードに失敗しました)」というエラー。このエラーの主な原因の一つは、オリジン間リソース共有(CORS:Cross-Origin Resource Sharing)に関する問題です。
原因:CORSによる制限
異なるドメインからメディアファイルを読み込もうとすると、ブラウザのセキュリティ機能によってアクセスがブロックされ、このDOMExceptionが発生することがあります。
解決策1:crossOrigin属性を設定する
videoやaudio要素に対して、crossOriginを明示的に「anonymous」に設定しましょう。
video.crossOrigin = 'anonymous';
解決策2:サーバー側でHTTPヘッダーを設定する
サーバーのレスポンスに以下のヘッダーを追加することで、クロスオリジンでのリソース共有が有効になります。これにより、画像やメディアファイルがレスポンスとともにHTTPヘッダーを通過できるようになります。
Access-Control-Allow-Origin: *
解決策3:jQueryのhtml()メソッドを使う
もう一つの方法として、jQueryのhtml()メソッドを使ってaudio要素を動的に挿入することもできます。
$('#audio').html('<audio autoplay><source src="demo.mp3"></audio>');まとめ
「サポートされているソースが見つからない」というDOMExceptionは、CORS設定を見直すことで解決できるケースがほとんどです。クライアント側のcrossOrigin属性の設定と、サーバー側のAccess-Control-Allow-Originヘッダーの設定を組み合わせることで、多くの場合この問題を回避できます。
-
【解決策】「Windows リソース保護が破損ファイルを検出しましたが、その一部を修復できませんでした」エラーの直し方(Windows 10/8/7)
Windows 10 PCでシステムファイルを修復するために sfc /scannow コマンドを実行した際、以下のようなエラーが表示されることがあります。 「Windows リソース保護は破損ファイルを検出しましたが、その一部を修復することができませんでした。詳細は CBS.Log windir\Logs\CBS\CBS.log に記録されています。例:C:\Windows\Logs\CBS\CBS.log」 本記事では、Windows 7 / 8 / 10 で SFC /SCANNOW を実行したときにこのエラーが発生した場合の、具体的な対処方法を6つ紹介します。上から順番に試していくこ
-
【解決済み】Windows Server 2016で「Windows Defender機能のインストールに失敗しました(0x800f081f)」を修正する方法
本記事では、Windows Server 2016で発生する「Windows Defender機能のインストールに失敗しました。ソースファイルが見つかりませんでした」というエラーを解決するための手順を詳しく解説します。 Windows Server 2016上で、以下のDISMコマンドを使用してWindows Defender機能とそのペイロードを削除した後、同機能を再度インストールしようとしても失敗してしまうことがあります。 Dism /online /Disable-Feature /FeatureName:Windows-Defender /Remove /NoRestart /qui