访问 IceCast 流时出现 CORS 错误,即使 Access-Control-Allow-Origin 设置正确

CORS error when accessing IceCast stream even though Access-Control-Allow-Origin is set properly

我正在尝试通过将流 URL 设置为 <audio> 元素的 <source> 然后使用 createMediaElementSource 来可视化来自另一个网站的音频流。服务器运行 IceCast,这里是响应头:

Accept-Ranges:none
Access-Control-Allow-Headers:Origin, Accept, X-Requested-With, Content-Type
Access-Control-Allow-Methods:GET, OPTIONS, HEAD
Access-Control-Allow-Origin:*
Cache-Control:no-cache, no-store
Connection:close
Content-Type:audio/mpeg
Expires:Mon, 26 Jul 1997 05:00:00 GMT
ice-audio-info:bitrate=128
icy-br:128
icy-br:128
icy-description:NONSTOP
icy-genre:Hit
icy-name:UltRadio
icy-pub:0
icy-url:http://ultradio.ru
Pragma:no-cache
Server:Icecast 2.3.3-kh11

如您所见,Access-Control-Allow-Origin:* 在那里,但我仍然收到此错误:

MediaElementAudioSource outputs zeroes due to CORS access restrictions

显然,正确的 CORS 功能需要 IceCast 版本 2.4.1+。但是这个版本到底改变了什么?除了 Access-Control-Allow-Origin 之外还有什么可以防止跨域访问?

您没有给出任何示例代码,但您是否记得为您的音频标签添加 crossorigin="anonymous"(或其他适当的值)?