Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Khắc phục lỗi DOMException: Failed to load because no supported source was found

Lỗi này thường xảy ra do vấn đề CORS (Cross-Origin Resource Sharing) khi tải media (video/audio) từ domain khác.

Giải pháp 1: Thiết lập crossOrigin trên media element

var video = document.querySelector('video');
video.crossOrigin = 'anonymous'; // hoặc 'use-credentials' nếu cần cookie/auth

Giải pháp 2: Cấu hình server trả về header CORS

Server chứa file media phải trả về header:

Access-Control-Allow-Origin: *

Hoặc domain cụ thể: Access-Control-Allow-Origin: https://yourdomain.com.

Giải pháp 3: Chèn media qua jQuery html() (workaround cũ)

$('#audio').html('<audio autoplay><source src="demo.mp3"></audio>');

Cách này đôi khi giúp trình duyệt reload media với context CORS mới, nhưng không phải giải pháp gốc rễ.

Kiểm tra nhanh

  • Mở DevTools → Network → xem request media có header Access-Control-Allow-Origin không.
  • Console có cảnh báo CORS không?
  • Thử mở URL media trực tiếp trong tab mới — nếu lỗi 403/401 → vấn đề server.

Lưu ý: Nếu media và trang web cùng origin (cùng domain, protocol, port), không cần CORS.