330 त्रुटि (शुद्ध :: ERR_CONTENT_DECODING_FAILED):


98

हाल ही में हम एक नए सर्वर पर चले गए। 2 दिनों के बाद, मुझे निम्नलिखित मुद्दे मिले

1) हमारे पास एक सत्र की मेज पर एक दुर्घटना थी, जिसे हमने आसानी से इसे पुन: निर्धारित करके तय किया था

2) हम अपने विज्ञापनकर्ता के रूप में ओपनएक्स चलाते हैं, और यह भी दुर्घटनाग्रस्त हो गया है, लेकिन एरर में कोई सबूत नहीं है। यह आपको लॉग इन करने देता है, लेकिन डैशबोर्ड.फपी देखने के समय पर, हमें निम्न मिलते हैं:

Error 330 (net::ERR_CONTENT_DECODING_FAILED): (Google Chrome)

तथा

वह पृष्ठ जिसे आप देखने का प्रयास कर रहे हैं, उसे दिखाया नहीं जा सकता क्योंकि यह संपीड़न के अमान्य या असमर्थित रूप का उपयोग करता है। (Firefox)


OpenX PHP पर निम्नलिखित सेवाओं का उपयोग करता है:

ओपनएक्स की आवश्यकता है: http://www.openx.com/docs/2.8/adminguide/System%20requirements

OpenX डिफ़ॉल्ट PHP सेटिंग्स का उपयोग करता है। हालाँकि, सर्वर व्यवस्थापक कभी-कभी इन सेटिंग्स को बदलते हैं। OpenX स्थापित करने से पहले जाँच लें कि निम्नलिखित सेटिंग्स सही हैं:

Magic_quotes_runtime safe_mode से बंद होना चाहिए register_argc_argv पर होना चाहिए यदि आप कमांड लाइन के माध्यम से रखरखाव चलाना चाहते हैं file_uploads को HTTP फ़ाइल अपलोड की अनुमति देने के लिए चालू करने की आवश्यकता है। Opens को निम्नलिखित PHP एक्सटेंशन की आवश्यकता होती है:

या तो mysqlविस्तार, या pgsqlmysqliविस्तार समर्थित नहीं है। ZLib एक्सटेंशन, द्वारा उत्पन्न फ़्लैश फ़ाइलों के अंदर लिंक परिवर्तित करने के लिए Flash MX। एफ़टीपी विस्तार। यदि यह मौजूद नहीं है तो OpenX इसे अनुकरण करने की कोशिश करेगा, जो एक कम स्थिर समाधान हो सकता है।

मुख पृष्ठ पर ग्राफ़ उत्पन्न करने के लिए GD एक्सटेंशन। यदि एक्सटेंशन सक्षम नहीं है, तो आप अपने होम पेज पर ग्राफ़ या आंकड़े नहीं देख पाएंगे। होम पेज पर लॉगऑन करने के लिए या तो ओपनएसएल एक्सटेंशन या एसएसएल-सक्षम कर्ल एक्सटेंशन की आवश्यकता होती है। यदि SSL सक्षम नहीं है, तो आपको होम पेज में एक त्रुटि संदेश प्राप्त होगा, लेकिन संचालन पर कोई प्रभाव नहीं पड़ता है।


संभावित कारणों पर कोई सुराग या अधिक जानकारी एकत्र करने के लिए बहुत सराहना की जाएगी। धन्यवाद

जवाबों:


133

यह तब होता है जब आपके HTTP अनुरोध के हेडर दावा करते हैं कि सामग्री gzip एनकोडेड है, लेकिन ऐसा नहीं है। Gzip एन्कोडिंग सेटिंग को बंद करें या सुनिश्चित करें कि सामग्री वास्तव में एन्कोडेड है।


इससे मेरा मुद्दा थैंक्यू बन गया। मैं सिर्फ उत्सुक हूँ अगर किसी को पता है कि यह त्रुटि है तो आपको मिलेगा यदि आपके द्वारा उपयोग किया गया ब्राउज़र gzip संपीड़न का समर्थन नहीं करता है?
लाइटबल्ब 1

6
मैं इस मुद्दे पर आया जब php gzipped सामग्री के ऊपर एक सादा पाठ चेतावनी आउटपुट कर रहा था।
माइक कॉसर

मुझे यह समस्या तब हुई जब सादे पाठ फ़ाइल को अपाचे कैश में फंस गया था, लेकिन ब्राउज़र gzipped सामग्री की उम्मीद कर रहे थे
Ljudevit

54

मैंने सक्षम zlib.output_compressionकिया php.iniऔर यह मेरे लिए समस्या को ठीक करने के लिए लगा।


मेरे लिए भी काम किया। (quercus-4.0.39 + glassfish4 + मैन्युअल रूप से web-inf / php.ini बनाएं।
Malcolm Boekhoff

21

रिकॉर्डिंग के दौरान कोड को BOM के बिना UTF8 को बचाने की आवश्यकता है। कभी-कभी, (नोटपैड ++) या अन्य कोडिंग टूल के साथ लिखित कोड और UTF8 एनकोड का उपयोग करते हैं, यह त्रुटि होती है। मुझे क्षमा करें, मुझे अंग्रेजी नहीं आती। यह सिर्फ मेरा अनुभव है।


+1 यह मेरी समस्या भी थी। एक कठिन रिबूट करना था क्योंकि मैं शिफ्ट-एस्केप को तेजी से हिट नहीं करता था :( फिर भी पता नहीं क्यों फ़ाइल utf-8 एनकोडेड नहीं थी (उदात्त पाठ 3 बिल्ड 3083)। चेक किए गए चूक और यह utf- था। 8. हो सकता है कि मैंने गलती से किसी अन्य प्रारूप में बचाने के लिए ctrl-s-something मारा ...
R_Ice

7

आउटपुट बफ़रिंग मॉड्यूल एक्सटेंशन (ob_gzhandler) के कारण यह त्रुटि हुई। जबकि आउटपुट बफ़रिंग का उपयोग ob_start () शुरू करने और ob_flush () को समाप्त करने में करता है

<?php   
    ob_start( 'ob_gzhandler' ); 
    echo json_encode($array);
    ob_end_flush();
?>

इसे इस्तेमाल करो:

<?php   
    ob_start(); 
    echo json_encode($array);
    ob_flush();
?>

यह php.ini में zlib.output_compression को सक्षम करने के साथ मिलकर काम करता है। वैसे - [PHP.net] ( php.net/manual/en/function.ob-gzhandler.php ) नोट करता है कि zlib.output_compression का उपयोग करना ob_gzhandler () पर अधिक पसंद किया जाता है।
कृष्ण अडोजान

5

यदि आप का उपयोग करने के लिए कर रहे हैं Codeigniter फ्रेमवर्क तो बस इसे विन्यास फाइल में बनाएँ:

$config['compress_output'] = FALSE;

और php.iniकॉन्फ़िगरेशन फ़ाइल में, उपयोग करें:

zlib.output_compression=On

वास्तव में php.ini निर्देशात्मक मान को बदलना ठीक करता है, क्योंकि ऐसा करने से सभी आउटपुट लागू होंगे gzippedCodeigniterConfig हैडर सेट हो जाएगा और यह लागू करने के लिए है कि उत्पादन में वेब अनुप्रयोग सर्वर पर निर्भर है। मैंने $config['compress_output'] = TRUEरखते हुए सेट करने की कोशिश की zlib.output_compression=On। इसका एक ही प्रभाव है। दिशा के लिए +1।
कोडरियर

2

क्या आप ob_start(ob_gzhandler)फ़ंक्शन का उपयोग करते हैं? यदि ऐसा है और यदि आप ob_start(ob_gzhandler)फ़ंक्शन के ऊपर किसी भी सामग्री का उत्पादन करते हैं, तो आपको यह त्रुटि मिलेगी। आप इस फ़ंक्शन का उपयोग नहीं कर सकते हैं या इस फ़ंक्शन के ऊपर सामग्री का उत्पादन नहीं कर सकते हैं। ob_gzhandlerकॉलबैक फ़ंक्शन सामग्री ब्राउज़र एन्कोडिंग को स्वीकार करेंगे कि किस प्रकार का निर्धारण करेगा और इसके उत्पादन के हिसाब से वापस आ जाएगी। इसलिए यदि आप इस फ़ंक्शन के ऊपर सामग्री का उत्पादन करते हैं, तो सामग्री की एन्कोडिंग शायद इस सामग्री के आउटपुट सामग्री से भिन्न होती है ob_gzhandlerऔर जो इस त्रुटि का कारण बनती है।


2

यदि कोई भी इस घृणित मुद्दे के कारण का शिकार करता है, तो उस कारण फ़ाइल को कील करने के लिए एक समाधान आता है। https://www.drupal.org/node/1622904#comment-10768958 सेDrupal समुदाय।

और मैं बोली:

संपादित करें

includes/bootstrap.inc:

समारोह drupal_load()। यह एक छोटा कार्य है। निम्नलिखित पंक्ति खोजें: include_once DRUPAL_ROOT . '/' . $filename; अस्थायी रूप से इसे बदल दें

ob_start();
include_once DRUPAL_ROOT . '/' . $filename;
$value = ob_get_contents();
ob_end_clean();
if ($value !== '') {
  $filename = check_plain($filename);
  $value = check_plain($value);
  print "File '$filename' produced unforgivable content: '$value'.";
  exit;
}

इसके लिए धन्यवाद। इससे मुझे अपनी समस्या को ट्रैक करने में मदद मिली, मेरे पास एक कस्टम ड्रूपल मॉड्यूल था जिसमें कोई कोड नहीं था। <?phpइसे तय करके जोड़ना ।
सीन बैनिस्टर

2

किसी और के लिए एक और विचार यह हो रही है ...

मैं कुछ gzipped svg था, लेकिन यह उत्पादन में एक php त्रुटि थी, जो इस त्रुटि संदेश का कारण बना। (क्योंकि gzip बाइनरी के बीच में पाठ था।) php त्रुटि को ठीक करके इसे हल किया गया।


सहमत थे, संपीड़न चालू करने से पहले अपने सभी PHP त्रुटि लॉग की जाँच करें। खासकर अगर आपने हाल ही में zlib कम्प्रेशन बंद नहीं किया है, और अब त्रुटि हो रही है। बस एक खराब DB क्वेरी तय की गई जो इसी त्रुटि का कारण बन रही थी। सक्षम करने zlib.output_compressionसे मुझे केवल कचरा पात्रों से भरा एक ब्राउज़र मिला।
बर्ट

2

में gzip संपीड़न सक्षम php.ini :

zlib.output_compression = On

और इसे अपने .htaccess फ़ाइल में जोड़ें :

<IfModule mod_deflate.c>
  # Compress HTML, CSS, JavaScript, Text, XML and fonts
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application/x-font
  AddOutputFilterByType DEFLATE application/x-font-opentype
  AddOutputFilterByType DEFLATE application/x-font-otf
  AddOutputFilterByType DEFLATE application/x-font-truetype
  AddOutputFilterByType DEFLATE application/x-font-ttf
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE font/opentype
  AddOutputFilterByType DEFLATE font/otf
  AddOutputFilterByType DEFLATE font/ttf
  AddOutputFilterByType DEFLATE image/svg+xml
  AddOutputFilterByType DEFLATE image/x-icon
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/xml

  # Remove browser bugs (only needed for really old browsers)
  BrowserMatch ^Mozilla/4 gzip-only-text/html
  BrowserMatch ^Mozilla/4\.0[678] no-gzip
  BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
  Header append Vary User-Agent
</IfModule>

1

मैं इस मुद्दे पर एक का अनुभव कर रहा था साइट और इस धागे में अन्य समाधानों में से किसी ने भी मदद नहीं की। कुछ समस्या निवारण के बाद मुझे लोकल मिला। ssingsings.php में एक क्लोजिंग टैग के साथ एक स्पेस के बाद ऐसा था:

<?php
$databases = array(
  'default' =>
  array (
    'default' =>
    array (
      'driver' => 'mysql',
      'database' => 'xxx',
      'username' => 'xxx',
      'password' => 'xxx',
      'port' => '',
      'host' => 'xxx',
    ),
  ),
);
?>
 

निम्नलिखित हल करने के लिए local.settings.php अपडेट कर रहा है:

<?php
$databases = array(
  'default' =>
  array (
    'default' =>
    array (
      'driver' => 'mysql',
      'database' => 'xxx',
      'username' => 'xxx',
      'password' => 'xxx',
      'port' => '',
      'host' => 'xxx',
    ),
  ),
);

समापन "?>" यहां PHP टैग आवश्यक नहीं है। यदि आप एक समापन टैग का उपयोग करना चुनते हैं तो आपको यह सुनिश्चित करना चाहिए कि इसके बाद कोई वर्ण / व्हाट्सएप न हो।


1

आज सुबह मेरे पास थोड़ा सा डमी क्षण था जब मैंने महसूस किया कि मेरे लिए यह मुद्दा क्या है।

अजीब बात यह है कि फ़ायरफ़ॉक्स और क्रोम दोनों में अनुरोध विफल हो रहा था, लेकिन जब मैंने फ़िडलर वेब डीबगर के माध्यम से पहुंचने की कोशिश की तो काम किया।

मेरे लिए, समस्या यह थी कि मैंने परियोजना में PHP फ़ाइलों में से एक में गलत चरित्र टाइप किया था। मैंने इसे तब तक नोटिस नहीं किया जब तक कि मैंने प्रोजेक्ट में बदलाव के लिए Git की जाँच नहीं की।

मेरे मामले में मेरे पास था m<?php runMyProgram(); ?>:।

एक बार मैंने मी को मिटा दिया, फिर से काम करना शुरू कर दिया।


खुली php टैग से पहले एक रिक्त स्थान एक ही त्रुटि का कारण बन सकता है।

1

मेरे मामले में यह आईआईएस के लिए एक नया आवेदन जोड़ते समय हुआ था जिसे अपाचे के साथ अनुमानित करने की आवश्यकता थी।

मुझे सामग्री प्राप्त ProxyHTMLEnable Onकरने के लिए सेट करने की आवश्यकता ProxyHTMLEnable Offहै। (ऐसा लगता है कि कुछ js कोड ने अधिकांश त्रुटि को ट्रिगर किया है, लेकिन इससे मुझे काम करने के लिए कम से कम कुछ मिला है।)

IIS पृष्ठ सामग्री भेज रहा है Content-Encoding: gzip

<Proxy "http://192.168.1.1:81">
    ProxyHTMLEnable On   #> change this to Off
    ProxyHTMLURLMap  ...  ...
</Proxy>

0

अपने सिस्टम को रिवाइव करने के लिए अपग्रेड करते समय भी हमें यह समस्या हुई थी। GZIP के मोड़ के बाद हमने पाया कि समस्या अभी भी कायम है। आगे की जांच करने पर हमें फ़ाइल अनुमतियां मिलीं, जो अपग्रेड के बाद सही नहीं थीं। एक साधारण पुनरावर्ती चामोद ने चाल चली।



0

एक अधिक सामान्य उत्तर यह है कि आपके पास कुछ त्रुटि है जो आपके कंप्रेसिंग से जुड़ी हो रही है। समाधान display_errors = Offआपके php.ini फ़ाइल में सेट करना है (अपने टर्मिनल में जाँच करें यदि यह चालू है php --infoऔर "display_errors" के लिए देखें)

इससे हो जाना चाहिए। और, आपको कैसे पता चलता है कि आप वास्तव में क्या त्रुटियां हैं? जब भी आप उस मार्ग / पृष्ठ पर जाते हैं, तो अपने PHP त्रुटि लॉग की जाँच करें।

अच्छा लुल्लक!

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