[jquery] जावास्क्रिप्ट console.log त्रुटि का कारण बनता है: "मुख्य धागे पर सिंक्रोनस XMLHttpRequest को बहिष्कृत किया गया है ..."



9 Answers

चेतावनी संदेश मुख्य थ्रेड के भीतर एक XMLHttpRequest अनुरोध के कारण हो सकता है जो async ध्वज को गलत पर सेट किया गया है।

https://xhr.spec.whatwg.org/#synchronous-flag :

श्रमिकों के बाहर सिंक्रोनस XMLHttpRequest वेब प्लेटफ़ॉर्म से हटाए जाने की प्रक्रिया में है क्योंकि इसका अंतिम उपयोगकर्ता के अनुभव पर हानिकारक प्रभाव पड़ता है। (यह एक लंबी प्रक्रिया है जिसमें कई सालों लगते हैं।) जावास्क्रिप्ट वैश्विक पर्यावरण एक दस्तावेज़ वातावरण होने पर डेवलपर्स को async तर्क के लिए गलत नहीं होना चाहिए। उपयोगकर्ता एजेंटों को डेवलपर टूल में ऐसे उपयोग के बारे में चेतावनी देने के लिए दृढ़ता से प्रोत्साहित किया जाता है और जब ऐसा होता है तो एक अवैधAccessError अपवाद फेंकने के साथ प्रयोग कर सकते हैं।

भविष्य की दिशा केवल कार्यकर्ता धागे में XMLHttpRequests को अनुमति देना है। संदेश उस प्रभाव के लिए एक चेतावनी होने का इरादा है।

Question

मैं फ़ायरफ़ॉक्स डीबगर का उपयोग किए बिना विभिन्न चर की स्थिति की जांच करने के लिए कंसोल में लॉग जोड़ रहा हूं।

हालांकि, कई जगहों पर जिसमें मैं अपनी main.js फ़ाइल में console.log main.js हूं, मुझे अपने प्यारे छोटे हस्तलिखित संदेशों के बजाय निम्न त्रुटि मिलती है:

मुख्य थ्रेड पर सिंक्रोनस XMLHttpRequest को अंतिम उपयोगकर्ता के अनुभव के हानिकारक प्रभावों के कारण बहिष्कृत किया गया है। अधिक सहायता के लिए http://xhr.spec.whatwg.org/

console.log लिए कौन से विकल्प या रैपर हैं, क्या मैं अपने कोड उपयोग में जोड़ सकता हूं जो इस त्रुटि का कारण नहीं बन पाएगा?

क्या मैं इसे गलत कर रहा हूं?




  1. क्रोम में, press F12
  2. Develomping उपकरण-> F1 दबाएं।
  3. सेटिंग्स-> सामान्य-> अपरिपक्वता देखें: "Don't show chrome Data Saver warning" - इस चेकबॉक्स को सेट करें।
  4. सेटिंग्स-> सामान्य-> कंसोल देखें: "Log XMLHTTPRequest" - यह चेकबॉक्स भी सेट करें।

का आनंद लें




क्लाउडफेयर के लिंक के कारण @Nycen I की तरह मुझे यह त्रुटि भी मिली। मेरा चयन 2 प्लगइन के लिए था।

इसे ठीक करने के लिए मैंने अभी हटा दिया

 src="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/js/select2.min.js"

और त्रुटि चली गई।




एक एमवीसी अनुप्रयोग में, मुझे यह चेतावनी मिली क्योंकि मैं एक केंडो विंडो खोल रहा था जो एक आंशिक दृश्य () के बजाय व्यू () को वापस कर रहा था। व्यू () पृष्ठ की सभी स्क्रिप्ट को फिर से पुनः प्राप्त करने का प्रयास कर रहा था।




जब मैं "example.com/files/text.txt" क्वेरी में url सेट करता हूं तो मुझे यह अपवाद मिला। मैंने यूआरएल को " http://example.com/files/text.txt " में बदल दिया और यह अपवाद खराब हो गया।




@Webgr आंशिक उत्तर ने वास्तव में मुझे इस चेतावनी @ कंसोल लॉग को डीबग करने में मदद की, शर्म की बात है कि उस उत्तर के दूसरे हिस्से ने इतने सारे डाउनवॉट लाए :(

वैसे भी, यहां बताया गया है कि मुझे पता चला कि मेरे मामले में इस चेतावनी का कारण क्या था:

  1. DevTools लाने के लिए क्रोम ब्राउज़र> F12 दबाएं
  2. दराज मेनू खोलें (ऊपरी दाएं में क्रोम 3 लंबवत बिंदुओं में)
  3. कंसोल के अंतर्गत> लॉग XMLHttpRequests विकल्प जांचें
  4. अपने पृष्ठ को दोबारा लोड करें जो आपको त्रुटि दे रहा था और देखें कि कंसोल लॉग में प्रत्येक AJAX अनुरोध पर क्या होता है।

मेरे मामले में, एक और प्लगइन प्रत्येक AJAX कॉल के बाद 2 .js पुस्तकालय लोड कर रहा था, जो बिल्कुल आवश्यक नहीं था और न ही आवश्यक था। दुष्ट प्लगइन को अक्षम करने से लॉग से चेतावनी हटा दी गई है। उस बिंदु से, आप या तो स्वयं समस्या को ठीक करने का प्रयास कर सकते हैं (उदाहरण के लिए कुछ पृष्ठों या घटनाओं के लिए स्क्रिप्ट को लोड करना सीमित करें - यह एक उत्तर के लिए बहुत विशिष्ट तरीका है) या इसे हल करने के लिए तृतीय पक्ष प्लगइन डेवलपर से संपर्क करें।

उम्मीद है कि यह किसी की मदद करता है।




मेरे लिए, समस्या यह थी कि एक ठीक अनुरोध में, मुझे उम्मीद थी कि AJAX प्रतिक्रिया एक अच्छी तरह से स्वरूपित HTML स्ट्रिंग जैसे टेबल के रूप में होगी, लेकिन इस मामले में, सर्वर को अनुरोध के साथ समस्या का सामना करना पड़ रहा था, एक त्रुटि पृष्ठ पर रीडायरेक्ट कर रहा था, और इसलिए त्रुटि पृष्ठ के HTML कोड को वापस लौटा रहा था (जिसमें <script टैग कहीं था। मैंने कंसोल को AJAX प्रतिक्रिया लॉग कर दी और जब मुझे एहसास हुआ कि यह मेरी अपेक्षा नहीं थी, तो मेरी डीबगिंग करने के लिए आगे बढ़े।




विजुअल स्टूडियो 2015/2017 का लाइव डीबगर कोड इंजेक्शन कर रहा है जिसमें बहिष्कृत कॉल शामिल है।




मैं सभी प्रभावशाली उत्तरों को देख रहा हूं। मुझे लगता है कि उसे वह कोड प्रदान करना चाहिए जो उसे एक समस्या दे रहा है। नीचे दिए गए उदाहरण को देखते हुए, अगर आपके पास पेज.एचपी में jquery से लिंक करने के लिए एक स्क्रिप्ट है तो आपको वह नोटिस मिल जाएगा।

$().ready(function () {
    $.ajax({url: "page.php",
        type: 'GET',
        success: function (result) {
        $("#page").html(result);
   }});
 });



मेरे विशेष मामले में मैं render layout: false किए बिना रेल को आंशिक रूप से render layout: false रहा था render layout: false जो पूरे लेआउट को फिर से प्रस्तुत कर रहा था, जिसमें <head> टैग की सभी स्क्रिप्ट शामिल हैं। render layout: false जोड़ना render layout: false नियंत्रक कार्रवाई के लिए render layout: false समस्या को हल किया।




Related