gpt4 book ai didi

javascript - 如果使用 jQuery.ajax 或 XMLHttpRequest 发出请求,Service Worker 获取处理程序不会触发

转载 作者:行者123 更新时间:2023-11-29 16:02:12 24 4
gpt4 key购买 nike

我在我的一个应用程序中使用服务 worker ,并希望在“服务 worker 获取处理程序”中捕获一些 Assets 请求,这些请求是由 jQuery ajax 发出的,但获取处理程序不会触发这些类型的请求(包括 XMLHttpRequest ()),但是,我能够在服务 worker 获取处理程序中捕获其他请求(对于 js、图像等)。

app.js 中的示例代码

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

Service Worker 中的示例代码

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

谢谢

最佳答案

我最近也遇到了类似的问题。

您应该在 chrome 浏览器中检查此代码。因为,截至目前(2019 年 6 月),firefox 能够在获取处理程序中捕获给定的请求。

来到chrome浏览器,它是一个开放的bug在 Chrome 。通过查看其最近的事件,他们正在努力解决问题。

与此同时,如果您希望它在 chrome 中工作,只需将 async 标志传递为 true 使其成为异步调用即可。

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

在此之后,给定的获取处理程序也将在 chrome 中被触发:)

关于javascript - 如果使用 jQuery.ajax 或 XMLHttpRequest 发出请求,Service Worker 获取处理程序不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51246410/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com