尝试从以下来源加载 mp3 文件: https ://static.twilio.com/libs/twiliojs/refs/82278dd/sounds/dtmf-1.mp3
在服务工作者中使用非常简单的请求重定向代码:
function onFetch(event) {
if (event.request.url.indexOf('.mp3') >= 0) {
event.respondWith(fetch(event.request.url, {mode: 'no-cors'}));
} else {
event.respondWith(fetch(event.request));
}
}
也尝试过其他选择:
fetch(event.request)
fetch(event.request.url)
fetch(event.request.url, {mode: 'cors'})
注意:如果我通过 {mode: 'no-cors'},服务工作者中不会引发错误,所有其他提到的情况都会引发错误:
Fetch API 无法加载https://static.twilio.com/libs/twiliojs/refs/82278dd/sounds/dtmf-1.mp3。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'my origin' 是不允许访问的。
我认为问题可能是 Service Worker 不发送 Accept-Encoding 和 Range Headers,因此它不加载资源。
任何形式的帮助,黑客将不胜感激。