Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
519 views
in Technique[技术] by (71.8m points)

js Service worker注册时设置非根目录无法拦截请求

如题,例如访问/aaa/bbbscope设置为/是可以正常拦截到的,如果设置为/aaa这样就会拦截不到。代码:

<!-- index.html -->
<!--
 目录结构:
  > index.html
  > worker.js
-->

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script>
    navigator.serviceWorker.register('/worker.js', { scope: '/aaa' })
      .then(reg => {
        if(reg.installing) {
          console.log('Service worker installing')
        } else if(reg.waiting) {
          console.log('Service worker installed')
        } else if(reg.active) {
          console.log('Service worker active')
        }
      })
      .catch(e => {
        console.log(e)
      })
    
    const xhr = new XMLHttpRequest()
    xhr.open('get', '/aaa/bbb/aaa')
    xhr.send()
    
    xhr.onload = () => {
      console.log(xhr.response)
    }
  </script>
</head>
<body>
  
</body>
</html>
// worker.js
self.addEventListener('fetch', console.log)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
等待大神解答

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...