2016-08-25 18 views
6

मैं वर्तमान में ब्राउज़र में पुश अधिसूचना को संभालने के लिए सेवा कार्यकर्ता पर काम कर रहा हूं। वर्तमान में मुझे यह "एसडब्ल्यू पंजीकरण विफल त्रुटि" है। क्या कोई इस मुद्दे से मदद कर सकता है? चेक 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> 
+0

'ServiceWorkerContainer.register'' का पहला तर्क एक यूआरएल है। त्रुटि संदेश इंगित करता है कि आपका ब्राउज़र संसाधन का उपयोग करने से इनकार कर रहा है क्योंकि मूल शून्य है - जो अक्सर स्थानीय (फ़ाइल: //) संसाधनों के लिए होता है। 'service-worker.js' स्थानीय है - मैं शर्त लगाऊंगा कि आपको क्रॉस मूल संसाधन समस्या – Tibrogargan

+0

मिल रही है धन्यवाद, मैंने अपने फ़ोल्डर को स्थानीयहोस्ट –

+0

के अंदर डालकर समस्या हल की है मुझे पुशर का कोई संदर्भ नहीं दिख रहा है कोड में इस प्रश्न में [पुशर'] (http://stackoverflow.com/questions/tagged/pusher) टैग क्यों है? –

उत्तर

11

हल: पहली बात यह है कि सेवा कार्यकर्ता केवल https या localhost में सुरक्षित मोड में काम करता है। यह स्थानीय संसाधनों जैसे फ़ाइल: // या http में काम नहीं करता है।

और दूसरा अंक पंजीकरण के दौरान था।

 navigator.serviceWorkerContainer.register('service-worker.js').then(function(reg){ 
+0

https://www.chromium.org/Home/chromium-security/prefer-secure-origins-for-powerful-new-features इस डॉक के अनुसार, यह समर्थन किया जाना चाहिए: "सुरक्षित मूल" मूल हैं जो निम्नलिखित में से कम से कम एक (योजना, मेजबान, बंदरगाह) पैटर्न से मेल खाता है: (https, *, *) (wss, *, *) (*, लोकलहोस्ट, *) (*, 127/8, *) (*, :: 1/128, *) (फ़ाइल, *, -) (क्रोम-एक्सटेंशन, *, -) –

संबंधित मुद्दे