我想用PreloadJS使用服务人员。我缓存了所需的图像,然后使用caches.match()
函数加载它们。PreloadJS和服务工作人员
当我尝试用jQuery它工作正常加载图像,但装载有preloadJS它提供了以下错误
的FetchEvent为“someurl”导致网络错误响应:“不透明”响应用于请求的类型不是非Cors
虽然如果我加载任何其他图像没有缓存,PreloadJS正确加载该图像。只有当我使用caches.match
时,问题才会发生。
这可能是什么原因?
使用jquery
加载图像使用preloadjsvar preload = new createjs.LoadQueue({ crossOrigin: "Anonymous" });
function loadImageUsingPreload() {
preload.on('complete', completed);
preload.loadFile({ id: 'someid', src: 'someurl', crossOrigin: true })
};
function completed() {
var image = preload.getResult("shd");
document.body.append(image);
};
加载图像
function loadImageUsingJquery() {
jQuery("#image").attr('src', 'someurl');
};
服务人员取事件
self.addEventListener('fetch', function(event) {
event.respondWith(
caches.match(event.request).then(function(response) {
if (!response) {
console.log('fetching...' + event.request.url);
return fetch(event.request);
};
console.log("response", response);
return response;
}));
});
响应对象当我加载使用PreloadJS或jQuery的:
响应{类型: “不透明”,网址: “”,重定向:假,状态:0,OK:假的,...}
你检查了这个问题吗? https://stackoverflow.com/questions/35626269/how-to-use-service-worker-to-cache-cross-domain-resources-if-the-response-is-404 –