簡體   English   中英

在Service Worker中使用Javascript獲取

[英]Fetching in Javascript in Service Worker

我目前正在嘗試使用服務工作者fetch事件和fetch API將請求發送到服務器並獲取HTML。 我遇到的問題涉及POST請求。 當我嘗試在有POST的情況下執行此操作時,我丟失了POST請求中的所有標頭(需要將數據添加到服務器中以獲取該帖子)。 我試圖手動獲取標頭並將其添加到提取中,但是沒有任何運氣。 這是我當前的fetch事件代碼:

self.addEventListener("fetch", function(event) {

    var acceptHeader = event.request.headers.get('Accept');
    //fetch options used for post requests
    var fetchOptionsForPost = {
        method: "post",
        headers: event.request.headers,
        credentials: event.request.credentials
    }


    //if it's a post request, 
    if( acceptHeader.indexOf('text/html') > -1 && event.request.method == "POST" ) {    
        var updatedFetch = fetch( event.request, fetchOptionsForPost).then(function(updatedResponse) {
            //do something with response here.
        });
    }
});

更新:

給了crdumoul的建議,並給出了以下控制台錯誤:

ServiceWorker.js:52 Uncaught (in promise) TypeError: Failed to execute 'fetch' on 'ServiceWorkerGlobalScope': Cannot construct a Request with a Request whose mode is 'navigate' and a non-empty RequestInit.
    at TypeError (native)
    at [URL to service worker]

嘗試在fetchOptionsForPost中將方法更改為“ POST”而不是“ post”。

暫無
暫無

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

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