簡體   English   中英

如何在Service Worker中使用POST http方法?

[英]How Can I use POST http method with Service Worker?

我在Service Worker中提取此命令

 if (event.request.method =='POST') {

        event.respondWith(fetch(event.request,{method: 'post'}));
        return;
    }

但我得到這個錯誤:

未捕獲(承諾)TypeError:無法在“ ServiceWorkerGlobalScope”上執行“獲取”:無法使用模式為“導航”且非空RequestInit的請求構造請求。

我該怎么辦 ?

根據您提供的示例代碼,當您處理POST請求的fetch存事件時,您似乎只想實現默認的,假裝的“無服務工人”行為。

最簡單的方法是根本不首先調用event.respondWith() 調用event.respondWith()是可選的,如果您未在fetch處理程序中調用它,則服務工作者將尋找任何其他已注冊的fetch處理程序,並為其提供響應的機會。

如果沒有任何fetch事件處理程序響應,則將通過瀏覽器緩存(取決於請求標頭和緩存的狀態)或網絡來完成請求,就像沒有服務人員參與一樣。

如果由於某種原因,您確實需要調用`event.respondWith(),但您想模仿默認行為,請使用

event.respondWith(fetch(event.request));

應該可以工作,即省略{method: 'post'}位。 event.request已經知道它是POST ,因此不必將其他任何內容傳遞給fetch()來告訴它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM