我目前正在服務工作人員處理瀏覽器中的推送通知。目前我有這個「註冊失敗錯誤」。任何人都可以解決這個問題嗎?檢查client1.html
及以下service-worker.js
文件:服務人員註冊失敗
錯誤:
SW registration failed with error SecurityError: Failed to register a ServiceWorker: The URL protocol of the current origin ('null') is not supported.
服務worker.js
console.log('Started', self);
self.addEventListener('install', function(event) {
self.skipWaiting();
console.log('Installed', event);
});
self.addEventListener('activate', function(event) {
console.log('Activated', event);
});
self.addEventListener('push', function(event) {
console.log('Push message received', event);
});
client1.html
<!doctype html>
<html>
<head>
<title>Client 1</title>
</head>
<body>
<script>
if('serviceWorker' in navigator){
// Register service worker
navigator.serviceWorker.register('service-worker.js').then(function(reg){
console.log("SW registration succeeded. Scope is "+reg.scope);
}).catch(function(err){
console.error("SW registration failed with error "+err);
});
}
</script>
</body>
</html>
「ServiceWorkerContainer.register」的第一個參數是一個URL。錯誤消息表明您的瀏覽器拒絕使用資源,因爲原始位置爲空 - 對於本地(file://)資源常常發生這種情況。 'service-worker.js'是本地的 - 我敢打賭,這就是爲什麼你會得到跨源數據源問題 – Tibrogargan
謝謝我剛剛通過將我的文件夾放在本地主機內解決了這個問題 –
我沒有看到任何對Pusher的引用在代碼中。爲什麼這個問題有['pusher'](http://stackoverflow.com/questions/tagged/pusher)標籤? –