'अनचेक किए गए रनटाइम.लॉटरर' को कैसे ठीक करें: एक प्रतिक्रिया प्राप्त होने से पहले संदेश पोर्ट बंद हो गया था 'क्रोम मुद्दा?


138

मैं अपने प्रोजेक्ट के लिए VueJS और Laravel का उपयोग कर रहा हूं। यह मुद्दा हाल ही में प्रदर्शित होना शुरू हुआ और यह पुरानी गिट शाखाओं में भी दिखा।

यह त्रुटि केवल क्रोम ब्राउज़र में दिखाई देती है।


3
क्या आपके पास कोई विज्ञापन अवरोधक है?
मैलिग

1
इस अन्य अनुरोध के लिए मेरे उत्तर की जाँच करें: stackoverflow.com/questions/53919591/…
डॉल्फिज

3
धन्यवाद दोस्तों, समस्या विस्तार "वीडियो डाउनलोडर पेशेवर" था।
ट्राइंफ माकडोनसी

2
मेरे लिए भी, वीडियो डाउनलोडर पेशेवर ऐसी त्रुटियों का उत्पादन कर रहा था
sinedsem

1
बंद करने के लिए वोटिंग, क्योंकि स्वीकृत समाधान एक कॉन्फ़िगरेशन समस्या है, और प्रोग्रामिंग समस्या के कारण को ठीक करने / समझने से संबंधित नहीं है।
ग्रेग डोमजान

जवाबों:


164

मैंने Chrome में सभी इंस्टॉल किए गए एक्सटेंशन अक्षम कर दिए हैं - मेरे लिए काम करता है। मेरे पास अब बिना त्रुटियों के स्पष्ट कंसोल है।


20
MeddleMonkey अक्षम
terantul

6
मुझे यह समस्या थी, नॉर्टन सेफ सर्च एक्सटेंशन
बोर्डी जूल

7
मेरे मामले में विस्तार था Google प्रकाशक टूलबार
लिंड्रो कास्त्रो

3
मेरे लिए यह "नॉर्टन सेफ वेब" था।
फ्रैंकफर्ट-लारवेल

2
सभी एक्सटेंशन एक समाधान को कैसे अक्षम कर रहे हैं ... या एक विचार भी। हम में से कई के लिए एक्सटेंशन आवश्यक कार्यक्षमता प्रदान करते हैं।
विंस

53

यदि आप एक एक्सटेंशन डेवलपर हैं जो इस त्रुटि के कारण को रोकने की कोशिश कर रहे हैं

मुद्दा CORB नहीं है, जैसा कि चेतावनी के रूप में अवरुद्ध CORs प्रकट होता है -

क्रॉस-ऑरिज रीडिंग ब्लॉकिंग (CORB) ब्लॉक की गई मूल प्रतिक्रिया https://www.example.com/example.html MIME टाइप टेक्स्ट / html के साथ। अधिक जानकारी के लिए https://www.chromestatus.com/feature/5629709824032768 देखें ।

समस्या सबसे अधिक संभावना है कि runtime.sendMessage के लिए एक mishandled async प्रतिक्रिया है। जैसा कि एमडीएन कहता है :

एक अतुल्यकालिक प्रतिक्रिया भेजने के लिए, दो विकल्प हैं:

  • ईवेंट श्रोता से सही लौटें। यह श्रोता के वापस आने के बाद सेंड्रांस फ़ंक्शन को वैध रखता है, इसलिए आप इसे बाद में कॉल कर सकते हैं।
  • ईवेंट श्रोता से एक वादा वापस लौटाएं, और जब आपके पास प्रतिक्रिया हो तो हल करें (या किसी त्रुटि के मामले में इसे अस्वीकार करें)।

जब आप एक async प्रतिक्रिया भेजते हैं, लेकिन इनमें से किसी भी तंत्र का उपयोग करने में विफल रहते हैं, तो आपूर्ति की गई sendResponseतर्क sendMessageगुंजाइश से बाहर हो जाती है और परिणाम ठीक वैसा ही होता है जैसे त्रुटि संदेश कहता है: प्रतिक्रिया से पहले आपका संदेश पोर्ट (संदेश-पास करने वाला उपकरण) बंद हो गया है प्राप्त किया।

Webextension-polyfill लेखकों ने जून 2018 में इसके बारे में पहले ही लिखा है

इसलिए नीचे की रेखा, यदि आप अपने एक्सटेंशन को इन त्रुटियों के कारण देखते हैं - अपने सभी ऑनमैसेज श्रोताओं का बारीकी से निरीक्षण करें। उनमें से कुछ को शायद वादे लौटाने शुरू करने की ज़रूरत है (उन्हें async के रूप में चिह्नित करना पर्याप्त होना चाहिए)। [साभार @vdegenne]


4
एक सिर के रूप में async/awaitअपने पृष्ठभूमि श्रोता कॉलबैक के लिए उपयोग नहीं करते हैं । यह मेरे लिए विफल रहा है, मैंने एक संरचना कोड में asyncअपनी awaitसंरचना को हटा दिया और बदल दिया thenऔर अब यह काम करता है।
17

लेकिन ... मैं कोई प्रतिक्रिया भेजने की कोशिश नहीं कर रहा हूँ, न ही मैं एक उम्मीद कर रहा हूँ!
माइकल

क्या एक महान तय है, धन्यवाद! मुझे बस इतना करना था return true;कि मेरे chrome.runtime.onMessage.addListener () फ़ंक्शन के निचले भाग को जोड़ें और समस्या हल हो गई! मैं $.ajaxइस फ़ंक्शन के अंदर jQuery का उपयोग कर रहा हूं , यही कारण है कि मुझे इस फिक्स की आवश्यकता है।
RcoderNY

42

यदि आप क्रोम: // एक्सटेंशन / पर जाते हैं , तो आप एक बार में प्रत्येक एक्सटेंशन को टॉगल कर सकते हैं और देख सकते हैं कि कौन सा वास्तव में समस्या को ट्रिगर कर रहा है।

एक बार जब आप एक्सटेंशन को बंद कर देते हैं, तो उस पृष्ठ को ताज़ा करें जहाँ आप त्रुटि देख रहे हैं और माउस को इधर-उधर घुमाएँ, या क्लिक करें। माउस क्रियाएं ऐसी चीजें हैं जो त्रुटियों को फेंक रही हैं।

इसलिए मैं यह इंगित करने में सक्षम था कि कौन सा एक्सटेंशन वास्तव में समस्या पैदा कर रहा है और इसे अक्षम कर रहा है।


2
मेरे मामले में यह 1password विस्तार था
अलेक्जेंडर किम

मेरे मामले में यह कलर कंट्रास्ट एनालाइजर था
माइकल लिकोरी

2
मेरे मामले में यह Google Publisher Toolbarविविल्डीvivaldi://extensions
शिम-साओ

हां, एक-एक करके एक्सटेंशन को डिसेबल कर दें। मुझे लगा कि त्रुटि के कारण कई एक्सटेंशन थे! धन्यवाद
जोस Mhlanga

17

पोस्ट बल्कि पुरानी है और क्रोम एक्सटेंशन विकास से निकटता से संबंधित नहीं है, लेकिन इसे यहां रहने दें।

कॉलबैक में संदेश पर प्रतिक्रिया देते समय मुझे एक ही समस्या थी। समाधान पृष्ठभूमि संदेश श्रोता में सच लौटना है

यहाँ बैकग्राउंड.जेएस का सरल उदाहरण है । यह popup.js के किसी भी संदेश का जवाब देता है।

chrome.runtime.onMessage.addListener(function(rq, sender, sendResponse) {
    // setTimeout to simulate any callback (even from storage.sync)
    setTimeout(function() {
        sendResponse({status: true});
    }, 1);
    // return true;  // uncomment this line to fix error
});

यहाँ popup.js है , जो popup पर संदेश भेजता है। आप अपवादों को मिलता है जब तक आप अन-टिप्पणी में लाइन "सच लौटने" करेंगे background.js फ़ाइल।

document.addEventListener("DOMContentLoaded", () => {
    chrome.extension.sendMessage({action: "ping"}, function(resp) {
        console.log(JSON.stringify(resp));
    });
});

मैनिफ़ेस्ट.जॉन , केवल मामले में :) अलार्म परमिशन सेक्शन पर ध्यान दें!

{
  "name": "TestMessages",
  "version": "0.1.0",
  "manifest_version": 2,
  "browser_action": {
    "default_popup": "src/popup.html"
  },
  "background": {
    "scripts": ["src/background.js"],
    "persistent": false
  },
  "permissions": [
    "alarms"
  ]
}

यह मेरे लिए काम किया! डिफ़ॉल्ट किस परिदृश्य के return falseलिए उपयोगी होगा?
एडुआर्डो रीस

डॉक्स का कहना है : This function becomes invalid when the event listener returns, unless you return true। अवैध का क्या मतलब है? लगता है कि यह हर बार यह एक संदेश वैसे भी प्राप्त होने के लिए नहीं बनाया जाता है?
एडुआर्डो रीस

@EduardoReis, FALSE के साथ इसे कुछ घटना के बारे में सूचित करने के लिए मुखबिर के रूप में इस्तेमाल किया जा सकता है।
अरबी वासिनोव

14

मैंने इस पर जवाब दिया है ।

मेरे मामले में, समस्या की वजह से था Video Downloader professionalऔरAdBlock

संक्षेप में, कुछ google chrome plugins के कारण यह समस्या होती है


6

त्रुटि कारण विस्तार उपयोग गुप्त है Ctrl+ Shift+ N। गुप्त मोड में क्रोम में एक्सटेंशन नहीं हैं।

युपीडी। यदि आपको गुप्त मोड में कुछ विस्तार की आवश्यकता है जैसे ReduxDevTools या कोई अन्य, एक्सटेंशन सेटिंग्स में "गुप्त में अनुमति दें" चालू करें


4

क्रोम 73 में इस त्रुटि को डीबग करने के लिए यहां आने वालों के लिए, एक संभावना है क्योंकि क्रोम 73 सामग्री स्क्रिप्ट में क्रॉस-ऑरिजनल अनुरोधों को अस्वीकार करता है।

अधिक पढ़ने:

  1. https://www.chromestatus.com/feature/5629709824032768
  2. https://www.chromium.org/Home/chromium-security/extension-content-script-fetches

यह कई क्रोम एक्सटेंशन लेखकों को प्रभावित करता है, जिन्हें अब एक्सटेंशन को ठीक करने के लिए हाथापाई करने की आवश्यकता है क्योंकि क्रोम को लगता है कि "हमारा डेटा दिखाता है कि अधिकांश एक्सटेंशन इस परिवर्तन से प्रभावित नहीं होंगे।"

(इसका आपके ऐप कोड से कोई लेना-देना नहीं है)

अद्यतन : मैंने कोर मुद्दे को ठीक कर दिया है लेकिन मुझे अभी भी यह त्रुटि दिखाई देती है। मुझे संदेह है कि यह क्रोम की गलती है।


4

यह त्रुटि आमतौर पर आपके क्रोम एक्सटेंशन में से एक के कारण होती है।

मैं इस वन-क्लिक एक्सटेंशन डिस्ब्लर को स्थापित करने की सलाह देता हूं , मैं इसे कीबोर्ड शॉर्टकट COMMAND (⌘)+ SHIFT (⇧)+ के साथ उपयोग करता हूं D- अपने सभी एक्सटेंशन को जल्दी से अक्षम / सक्षम करने के लिए।

एक बार एक्सटेंशन अक्षम हो जाने के बाद यह त्रुटि संदेश चला जाना चाहिए।

शांति! ✌️



2

सुनिश्चित करें कि आप सही सिंटैक्स का उपयोग कर रहे हैं।

हमें इसे सुनने के बाद SendMessage () पद्धति का उपयोग करना चाहिए ।

यहां contentScript.js का एक सरल उदाहरण दिया गया है । यह app.js को SendRequest है

contentScript.js

chrome.extension.sendRequest({
    title: 'giveSomeTitle', params: paramsToSend
  }, function(result) { 
    // Do Some action
});

app.js

chrome.extension.onRequest.addListener( function(message, sender, 
 sendResponse) {
  if(message.title === 'giveSomeTitle'){
    // Do some action with message.params
    sendResponse(true);
  }
});

sendRequestsendMessage
user889030

1

यदि कोई एंटी-वायरस एक्सटेंशन ब्राउज़र पर स्थापित है, तो अक्षम करें। मेरे मामले में, एंटी-वायरस एक्सटेंशन अपराधी था।



0

मेरे मामले में यह मेरे अपने पृष्ठ स्रोत में एक विराम बिंदु था। यदि मैंने ब्रेकपॉइंट हटा दिया या अक्षम कर दिया तो त्रुटि स्पष्ट हो जाएगी।

ब्रेकप्वाइंट रेंडरिंग कोड के थोड़े जटिल चंक्स में था। पृष्ठ के विभिन्न भागों में अन्य विराम बिंदुओं का ऐसा कोई प्रभाव नहीं था। मैं एक साधारण परीक्षण मामले में काम करने में सक्षम नहीं था जो हमेशा इस त्रुटि को ट्रिगर करता है।


0

मैं एक टैब से दूसरे टैब पर कंसोल लॉग डेटा भेज रहा था और वास्तव में पहले कंसोल की आवश्यकता नहीं थी। हालाँकि त्रुटि संदेश ने मुझे बग कर दिया था इसलिए मैंने राइट क्लिक किया और "x वेबसाइट से संदेश न दिखाएं" का चयन किया। शायद यह सबसे आसान तय है :)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.