मैं अपने प्रोजेक्ट के लिए VueJS और Laravel का उपयोग कर रहा हूं। यह मुद्दा हाल ही में प्रदर्शित होना शुरू हुआ और यह पुरानी गिट शाखाओं में भी दिखा।
यह त्रुटि केवल क्रोम ब्राउज़र में दिखाई देती है।
मैं अपने प्रोजेक्ट के लिए VueJS और Laravel का उपयोग कर रहा हूं। यह मुद्दा हाल ही में प्रदर्शित होना शुरू हुआ और यह पुरानी गिट शाखाओं में भी दिखा।
यह त्रुटि केवल क्रोम ब्राउज़र में दिखाई देती है।
जवाबों:
मैंने Chrome में सभी इंस्टॉल किए गए एक्सटेंशन अक्षम कर दिए हैं - मेरे लिए काम करता है। मेरे पास अब बिना त्रुटियों के स्पष्ट कंसोल है।
यदि आप एक एक्सटेंशन डेवलपर हैं जो इस त्रुटि के कारण को रोकने की कोशिश कर रहे हैं
मुद्दा 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]
async/await
अपने पृष्ठभूमि श्रोता कॉलबैक के लिए उपयोग नहीं करते हैं । यह मेरे लिए विफल रहा है, मैंने एक संरचना कोड में async
अपनी await
संरचना को हटा दिया और बदल दिया then
और अब यह काम करता है।
return true;
कि मेरे chrome.runtime.onMessage.addListener () फ़ंक्शन के निचले भाग को जोड़ें और समस्या हल हो गई! मैं $.ajax
इस फ़ंक्शन के अंदर jQuery का उपयोग कर रहा हूं , यही कारण है कि मुझे इस फिक्स की आवश्यकता है।
यदि आप क्रोम: // एक्सटेंशन / पर जाते हैं , तो आप एक बार में प्रत्येक एक्सटेंशन को टॉगल कर सकते हैं और देख सकते हैं कि कौन सा वास्तव में समस्या को ट्रिगर कर रहा है।
एक बार जब आप एक्सटेंशन को बंद कर देते हैं, तो उस पृष्ठ को ताज़ा करें जहाँ आप त्रुटि देख रहे हैं और माउस को इधर-उधर घुमाएँ, या क्लिक करें। माउस क्रियाएं ऐसी चीजें हैं जो त्रुटियों को फेंक रही हैं।
इसलिए मैं यह इंगित करने में सक्षम था कि कौन सा एक्सटेंशन वास्तव में समस्या पैदा कर रहा है और इसे अक्षम कर रहा है।
Google Publisher Toolbar
विविल्डीvivaldi://extensions
पोस्ट बल्कि पुरानी है और क्रोम एक्सटेंशन विकास से निकटता से संबंधित नहीं है, लेकिन इसे यहां रहने दें।
कॉलबैक में संदेश पर प्रतिक्रिया देते समय मुझे एक ही समस्या थी। समाधान पृष्ठभूमि संदेश श्रोता में सच लौटना है ।
यहाँ बैकग्राउंड.जेएस का सरल उदाहरण है । यह 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
। अवैध का क्या मतलब है? लगता है कि यह हर बार यह एक संदेश वैसे भी प्राप्त होने के लिए नहीं बनाया जाता है?
क्रोम 73 में इस त्रुटि को डीबग करने के लिए यहां आने वालों के लिए, एक संभावना है क्योंकि क्रोम 73 सामग्री स्क्रिप्ट में क्रॉस-ऑरिजनल अनुरोधों को अस्वीकार करता है।
अधिक पढ़ने:
यह कई क्रोम एक्सटेंशन लेखकों को प्रभावित करता है, जिन्हें अब एक्सटेंशन को ठीक करने के लिए हाथापाई करने की आवश्यकता है क्योंकि क्रोम को लगता है कि "हमारा डेटा दिखाता है कि अधिकांश एक्सटेंशन इस परिवर्तन से प्रभावित नहीं होंगे।"
(इसका आपके ऐप कोड से कोई लेना-देना नहीं है)
अद्यतन : मैंने कोर मुद्दे को ठीक कर दिया है लेकिन मुझे अभी भी यह त्रुटि दिखाई देती है। मुझे संदेह है कि यह क्रोम की गलती है।
यह त्रुटि आमतौर पर आपके क्रोम एक्सटेंशन में से एक के कारण होती है।
मैं इस वन-क्लिक एक्सटेंशन डिस्ब्लर को स्थापित करने की सलाह देता हूं , मैं इसे कीबोर्ड शॉर्टकट COMMAND (⌘)+ SHIFT (⇧)+ के साथ उपयोग करता हूं D- अपने सभी एक्सटेंशन को जल्दी से अक्षम / सक्षम करने के लिए।
एक बार एक्सटेंशन अक्षम हो जाने के बाद यह त्रुटि संदेश चला जाना चाहिए।
शांति! ✌️
सुनिश्चित करें कि आप सही सिंटैक्स का उपयोग कर रहे हैं।
हमें इसे सुनने के बाद 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);
}
});
sendRequest
sendMessage
मेरे लिए यह था Auto Tab Discard
, जो उस त्रुटि को पिन किए गए टैब पर फेंकता है। मैंने एक बग रिपोर्ट बनाई, https://github.com/rNeomy/auto-tab-discard/issues/101 ।
मेरे मामले में यह मेरे अपने पृष्ठ स्रोत में एक विराम बिंदु था। यदि मैंने ब्रेकपॉइंट हटा दिया या अक्षम कर दिया तो त्रुटि स्पष्ट हो जाएगी।
ब्रेकप्वाइंट रेंडरिंग कोड के थोड़े जटिल चंक्स में था। पृष्ठ के विभिन्न भागों में अन्य विराम बिंदुओं का ऐसा कोई प्रभाव नहीं था। मैं एक साधारण परीक्षण मामले में काम करने में सक्षम नहीं था जो हमेशा इस त्रुटि को ट्रिगर करता है।