Can service workers cache POST requests?

前端 未结 5 1628
猫巷女王i
猫巷女王i 2020-12-01 04:30

I tried to cache a POST request in a service worker on fetch event.

I used cache.put(event.request, response), but the returned promise was rejected wit

5条回答
  •  隐瞒了意图╮
    2020-12-01 05:22

    If you are talking about form data, then you could intercept the fetch event and read the form data in a similar way as below and then save the data in indexedDB.

    //service-worker.js
    self.addEventListener('fetch', function(event) {
          if(event.request.method === "POST"){
             var newObj = {};
    
                   event.request.formData().then(formData => {
    
                    for(var pair of formData.entries()) {
                      var key = pair[0];
                      var value =  pair[1];
                      newObj[key] = value;
                    }
    
                  }).then( ...save object in indexedDB... )
          }
    })
    

提交回复
热议问题