How to Fix M3U8 CORS Errors in Browsers
Complete guide to fixing CORS errors when playing M3U8/HLS streams in browsers. Solutions for developers and stream providers.
What Is a CORS Error?
CORS is a security mechanism that blocks cross-origin requests. When a player on domain A tries to load a stream from domain B, the browser checks if domain B allows it. If not, you get a CORS error.
The Error Message
You'll see: Access to XMLHttpRequest at '...' from origin '...' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header present.
How to Fix CORS Errors (For Server Owners)
Add headers: Access-Control-Allow-Origin: *, Access-Control-Allow-Methods: GET, OPTIONS. Apply to M3U8 files, TS/fMP4 segments, and key files.
Nginx: add_header Access-Control-Allow-Origin *;. Apache: Header set Access-Control-Allow-Origin "*".
Related Articles
M3U8 Player Not Working? 10 Fixes to Try Right Now
Is your M3U8 player not playing video? Here are 10 proven fixes for common M3U8 playback problems, from CORS errors to codec issues.
HLS Stream Not Working? Common Causes & Easy Fixes
Fix HLS streams that won't play or keep buffering. Guide to common HLS streaming issues including CORS, latency, segment errors, and more.