我想用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 –