由于重复请求,视频元素无法加载

时间:2016-08-15 12:57:37

标签: javascript jquery html5 google-chrome video

我的webApp(用HTML5和jQuery编写)包含一个视频元素,其源是在用户交互后动态分配的。 在添加源(视频元素路径,而不是源标记)之后,我调用video-element.load(),并且由于某种原因,两个GET请求被发送到我的localhost服务器。 第一个请求的Range标头为

bytes=0-

和第二个

bytes=<FileLength>-

我的服务器(用C#编写)接受两个请求并为它们提供服务(在一个“大”块中发回一个mp4文件)。但视频元素似乎是空的(空白),并且不会响应.play()。

我最大的问题是这个问题不一致,文件可能不会发生,然后大约一秒钟就会发生。此外,仅在Chrome V52及更高版本上发生这种情况(例如在V51或Firefox上不会发生)

有人有任何想法吗? 如何检查它是否是HTML问题?一个JS问题?浏览器是否应该发送2个GET请求,即使我调用load()一次?

1 个答案:

答案 0 :(得分:0)

您的问题的另一种解决方案是更改您的Web服务器,使其能够处理此类请求。 选项是: 1.修复它以支持使用部分响应块进行应答(使用响应头内容范围) 2.将其配置为完全禁用部分响应(通过向响应头添加Accept-Ranges:none