簡體   English   中英

如果使用jQuery.ajax或XMLHttpRequest發出請求,則Service Worker獲取處理程序不會觸發

[英]Service Worker fetch handler not triggering if request is made using jQuery.ajax or XMLHttpRequest

我在我的一個應用程序中使用服務工作者,並希望在“服務工作程序獲取處理程序”中捕獲一些資產請求,這些請求是由jQuery ajax創建的,但是獲取處理程序不會觸發這些類型的請求(包括XMLHttpRequest() ),但是,我能夠在服務工作者獲取處理程序中捕獲其他請求(對於js,圖像等)。

app.js中的示例代碼

$.ajax({
    async: false,
    url: "./Initial.xml",
    dataType: "xml",
    success: function(response) {
       self.initial = response;
    }
});

服務工作者中的示例代碼

self.addEventListener('fetch', event => {
    console.log(event.request.url);
    event.respondWith(fetch(myRequest.clone()));
});

謝謝

我最近也遇到過類似的問題。

您應該在Chrome瀏覽器中檢查此代碼。 因為,截至目前(2019年6月),firefox能夠在獲取處理程序中捕獲給定的請求。

來到chrome瀏覽器,它是一個開放的Chrome 錯誤 通過查看最近的活動,他們正在努力解決這個問題。

同時,如果您希望它在chrome中工作,只需將async標志作為true傳遞給異步調用即可。

$.ajax({
    async: true,
    url: "./Initial.xml",
    dataType: "xml",
    success: function(response) {
       self.initial = response;
    }
});

在此之后,給定的提取處理程序也將在chrome中觸發:)

暫無
暫無

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

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