Service Worker + <audio>标签+重定向的src URL =无法在Chrome中下载音频

问题描述

(我非常确定这是一个Chromium错误,但我只是在这里发布,希望在发布关于bug的报告之前,希望获得经验丰富的服务人员和Chromium的确认)

我发现,如果我注册一个Service Worker,它仅拦截并缓存了所有请求(我在这里使用upup.js),并且我有一个带有重定向到另一个URL的URL的音频标签。包含实际音频文件,然后单击下载按钮(如下所示)不起作用。

Chrome on-player download button

audio download failed - network error

如果它确实对您有用,请尝试刷新页面,然后再试一次(它对我有用一次-但是即使清除了浏览器缓存,我也可以重现)。

要使事情变得怪异(和更多类似bug的问题),如果右键单击播放器,然后单击“将音频另存为...”并下载类似的音频,则效果很好。这也适用于Firefox。 Firefox没有播放器上的下载按钮,因此没有可供测试的模拟软件。

如果您删除服务工作者或删除重定向,它也可以正常工作。

下面链接了完整代码,但客户端代码为:

<audio controls src="/audio.mp3"></audio>
<script src="/upup.js"></script>
<script> UpUp.start({ "content-url": "/","assets": []}); </script>

和服务器端代码的相关部分是:

app.get("/audio.mp3",(request,response) => {
  response.redirect(302,"https://file-examples-com.github.io/uploads/2017/11/file_example_MP3_700KB.mp3");
});

您可以在此处查看有效的演示并编辑代码

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)