【问题标题】:Cross-Origin Request Blocked HLS URL跨域请求被阻止的 HLS URL
【发布时间】:2017-08-25 11:51:29
【问题描述】:

我们正在使用 seaweedFS 来保存我们的图像和 mp4 视频文件。现在,我们计划将 HLS 文件保存在 seaweedFS 上。一切都很完美,HLS 文件现在保存在 seaweedFS 上,但是当我们尝试在 HTML5 视频播放器中使用 HLS URL 时,它会给出以下警告:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://{seaweedFS-URL}/gpocam/timelapses/testt-ymgqr/index.m3u8. (Reason: CORS header 'Access-Control-Allow-Origin' missing).

当我在 VLC 中使用相同的 URL 时,它可以工作,但不能在浏览器的播放器中工作。谁能指出这里的问题?

【问题讨论】:

  • VLC 很可能不关心跨域访问,而 Web 浏览器则需要正确的访问控制标头。是否可以将这些标头添加到 seaweedFS 服务器? (我对 seaweedFS 一无所知。)
  • 不,不能将标头添加到 seaweedFS。
  • groups.google.com/forum/#!topic/seaweedfs/RuA8YK-IlY8 建议在 seaweedFS 前使用代理来添加额外的标头。或者您可以修改 seaweedFS 的来源并添加标头。据我所知,如果没有该标题,您将无法在任何浏览器中播放它。

标签: erlang elixir weed-fs


【解决方案1】:

我在 seaweedFS 前面使用了NGINX 来添加额外的头文件。使用这种方式我解决了我的问题。

这里是 NGINX 配置:

upstream media_evercam {
            server 127.0.0.1:8888;
    }

    more_set_headers 'Access-Control-Allow-Origin: *';
    more_set_headers "Content-Type: $upstream_http_content_type";

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    server {
            listen 80;
            server_name localhost;

            location / {
                    proxy_pass http://media_evercam;
                    proxy_connect_timeout 60s;
            }
    }

【讨论】:

    猜你喜欢
    • 2021-06-26
    • 2014-10-13
    • 2019-11-04
    • 2017-02-06
    • 2017-01-04
    • 2014-12-27
    • 2020-01-03
    相关资源
    最近更新 更多