如果服务器返回304,则Edge不播放视频

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果服务器返回304,则Edge不播放视频相关的知识,希望对你有一定的参考价值。

我发现第二次播放视频时Edge不起作用。我的应用程序使用默认的<video>标记,Edge在第二次加载视频时发送If-Modified-Since标头。如果我的服务器返回304 Not-Modified它不起作用。当我更改它以返回完整的视频时,它的工作原理。

任何可以验证此行为的人?我做错了什么,我应该在304响应中添加其他内容以使其正常工作吗?

顺便说一下,我看到Chrome和Firefox等其他浏览器在加载视频时从不发送If-Modified-Since

答案

你可以看看this stackexchange question,你可以在这里阅读:

根据this article,这些是浏览器将使用If-Modified-Since请求的情况:

  • 缓存条目没有到期日期,并且首次在浏览器会话中访问内容
  • 缓存条目具有到期日期但已过期
  • 用户通过单击“刷新”按钮或按F5请求页面更新

[...]

可能有帮助的一件事是将“public”添加到缓存控制头,即Cache-Control: public, max-age=31536000

你也可以添加immutable,所以你可以试试:

Cache-Control: public, max-age=31536000, immutable

以上是关于如果服务器返回304,则Edge不播放视频的主要内容,如果未能解决你的问题,请参考以下文章

304 在 iOS Cordova 应用上播放 html5 视频时未修改

当替换片段视频仍在android中播放背景时

如何在片段中播放视频

使用HttpWebRequest时,为什么我在某些链接上出现“(304)Not Modified”错误?

Fetch API 和 Axios 是不是将 304 响应视为 200?

MP4 视频在 <video> 标签中无法在 Firefox 上播放,如果直接打开则播放