[英]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.