I am currently experimenting with service workers (see Using Service Workers or Service Workers: an Introduction). One scenario is to provide mock data when no connection to an external service is available. And by theory, service workers should be able to intercept any request made by the website.
But there is one exception. If you fetch data with jQuery.ajax() function and use async: false, the service worker will not be able to intercept any of those requests. I am not quite sure about the underlying cause, but wanted to share my findings.