我用HTML5和JavaScript做了一些简单的音频播放器。 我的球员已经老了(2年)。
我有两个服务器,一个只有音乐(我会称之为#34; NAS"),另一个是网站(我会称之为#34;网络服务器")。 我用JavaScript加载音乐。
两年前开始,它曾经工作得很好,没有任何CORS标头设置。
自从〜一年后,我遇到了一些麻烦,所以我在NAS的apache2上添加了这些行:
Header always set Access-Control-Allow-Origin "https://webserver:port"
Header always set Accept-Ranges "bytes"
Header always set Connection "Keep-Alive"
Header always set Access-Control-Allow-Credentials true
它已经很好地工作了很长时间,没有任何麻烦。 几个星期后,我遇到了一些大麻烦,FireBug很多次都告诉我:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://NAS/path/to/music. This can be fixed by moving the resource to the same domain or enabling CORS.
所以我在互联网上阅读了很多关于CORS的内容。 我在我的NAS的apache2中添加了几行:
# MIME TYPES
AddType audio/aac .aac
AddType audio/mp4 .mp4 .m4a
AddType audio/mpeg .mp1 .mp2 .mp3 .mpg .mpeg
AddType audio/ogg .oga .ogg
AddType audio/wav .wav
AddType audio/webm .webm
# HEADER
Header always set Access-Control-Allow-Origin "https://webserver:port"
Header always set Accept-Ranges "bytes"
Header always set Connection "Keep-Alive"
Header always set Access-Control-Allow-Credentials true
Header always set Access-Control-Allow-Headers "*"
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
Header always set Access-Control-Request-Headers: "X-Requested-With, accept, content-type"
它仍然不起作用。我发现最奇怪的是,它有时会起作用,媒体正在加载和播放,但很多时候它没有用。 所以有时候,我重试同一首歌5~20次,4~19次他不想加载它,第5~20次,他加载并播放......
我发现真的很奇怪。
感谢您的帮助