【发布时间】:2021-10-01 05:04:13
【问题描述】:
在我的应用程序中使用 video.js 插件播放 HLS 视频时遇到问题。 我有一个 HLS 视频(.m3u8,.ts)的 S3 存储,并且它连接到云端。视频在 safari 上运行,但在 chrome 上运行不正常。仅当我重新加载页面(删除缓存,cookie,...)时,它们才在 chrome 上工作。
我的配置:
Video.JS:
videojs.Hls.xhr.beforeRequest = function (options) {
options.headers = {
"Access-Control-Allow-Origin": "*",
};
return options;
};
S3 存储桶 CORS:
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"GET",
"PUT",
"POST",
"HEAD"
],
"AllowedOrigins": [
"*"
],
"ExposeHeaders": [
"ETag",
"Access-Control-Allow-Origin",
"Connection",
"Content-Length"
],
"MaxAgeSeconds": 3000
}
]
CloudFront:
【问题讨论】:
-
Access-Control-Allow-Origin不应作为请求标头发送。参见例如stackoverflow.com/a/19939041/740233 用于在 S3 上设置 CORS。 -
@misterben 如果你的意思是在 Video.js 中,它被放置在那里作为最后一次尝试修复它,所以即使没有来自视频插件的请求,它也无法工作。
标签: amazon-s3 cors amazon-cloudfront http-live-streaming video.js