Перехват HTTP-вызовов API в сервисном работнике в js - PullRequest
0 голосов
/ 17 января 2020

ну

я пишу приложение

, и пока я читал о WPA, я наткнулся на топи c под названием Сервисный работник

это удивительно, но довольно сложно

, поэтому я написал работнику службы

index. html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Service Workers</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>
    <button onclick="doDataRequest()">Do Data Request</button>

    <script>

        navigator.serviceWorker.register('/sw.js').then(function(registration) {
            // Registration was successful
            console.log('ServiceWorker registration successful with scope: ', registration.scope);
        }).catch(function(err) {                                             
            // registration failed :(
            console.log('ServiceWorker registration failed: ', err);
        });

        function doDataRequest() {
            fetch('/app', {                 
                method: 'GET'
            }).then(function(response) {  
                console.log(response);
            }).catch(function(err) {       
                console.log(err);
            });

        }

    </script>
</body>
</html>

sw . js

"use strict";

self.addEventListener('fetch', function(event) {
    console.log("its working baby;)");
    event.respondWith(
        "this is a test"
    );
});

он регистрируется без ошибок и даже перехватывает запросы на получение файла [например, index.html]

, но не может перехватывать вызовы API, например / app [я использую node.js env]

, что я в основном хочу, если происходит 404 или любая другая ошибка, на которую я хочу ответить данными по умолчанию

  • это вообще возможно, или я просто понимаю, что это что-то другое
  • Если я неправильно понимаю это, то возможно ли установить прокси на стороне клиента и переопределить HTTP-ответ соответствующих запросов?

я новичок в WPA, так что помилуйте, если я говорю какую-то ерунду; p

любой вид esponse будет оценен

, пожалуйста, помогите

...