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-Originkhô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.