जारी है मैं इस समस्या से पूरी तरह से खो गया हूं।बहुत लंबी जेसन प्रतिक्रिया बंद हो जाती है और पाठ के रूप में HTTP शीर्षलेख भेजती है तो
मेरे पास एक AJAX क्वेरी है जो एक जेसन प्रतिक्रिया प्राप्त करता है। क्वेरी ज्यादातर परिस्थितियों में ठीक काम करती है हालांकि जेसन प्रतिक्रिया बहुत बड़ी है, हालांकि ठोकर लगती है।
समस्याप्रतिक्रिया के रूप में समाप्त होता है है:
...est":"test length"}]]}
HTTP/1.1 200 OK
Date: Wed, 21 Sep 2011 17:10:32 GMT
Server: Apache/2.2.11 (Win32) mod_ssl/2.2.11 OpenSSL/0.9.8k PHP/5.3.0
X-Powered-By: PHP/5.3.0
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Keep-Alive: timeout=5, max=90
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html
5b03d
{"ResultsInfo":{"RequestID":"131661886010","FeedCompletion":{"0":"100"}},"ResultsData":[[{"test":"test length"},{"test":"test length"},
...0
... प्रतिनिधित्व करते हैं एक ही "{" परीक्षण ":" परीक्षण लंबाई "} के और अधिक," स्ट्रिंग
तो प्रतिक्रिया के रूप में हो रहा है:
- डेटा
- http प्रतिक्रिया हेडर शरीर में मुद्रित की अंतिम भाग
- पात्रों के 5b03d '
- डेटा का पहला भाग
- चरित्र' 0 '
वहाँ प्रतिक्रिया का एक सटीक लंबाई ऐसा होता है कि कम से लेकिन यह 360,791 पात्रों लेकिन नहीं पर ठीक है नहीं है 372797 वर्णों पर।
मैं वाईआई PHP फ्रेमवर्क का उपयोग कर रहा हूं, लेकिन वहां दूर और व्यापक खोज की है और वहां मंचों में कुछ भी नहीं देखा है।
ऐसा लगता है कि वेबसर्वर प्रतिक्रिया को कई टुकड़ों या समय में अलग कर रहा है और फिर से शुरू कर रहा है।
या शायद वापसी का अधिकतम आकार है?
संपादित _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ ___
मैंने सुझाव के अनुसार एप्लिकेशन/जेसन सामग्री प्रकार की कोशिश की है लेकिन यह हो रहा है।
HTTP/1.1 200 OK
Date: Thu, 22 Sep 2011 08:48:28 GMT
Server: Apache/2.2.11 (Win32) mod_ssl/2.2.11 OpenSSL/0.9.8k PHP/5.3.0
X-Powered-By: PHP/5.3.0
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Keep-Alive: timeout=5, max=89
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: application/json
मैं कैसे इस विशेष स्क्रिप्ट के लिए chunked एन्कोडिंग बंद करूं: हेडर है कि शरीर में दिया जाता है की ट पाठ हिस्सा (जब applciaiton का उपयोग कर/json एन्कोडिंग) के रूप में इस प्रकार है?
** संपादित 2_ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ _
अब मैं अपने हेडर के लिए एक सामग्री की लंबाई को शामिल किया है और प्रतिक्रिया हेडर मैं अभी भी रूप में शरीर में मुद्रित किया जाता है: जैसे कि यह नहीं रह गया है के रूप में chunked भेजा जा रहा है
HTTP/1.1 200 OK
Date: Thu, 22 Sep 2011 11:55:39 GMT
Server: Apache/2.2.11 (Win32) mod_ssl/2.2.11 OpenSSL/0.9.8k PHP/5.3.0
X-Powered-By: PHP/5.3.0
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 372797
Keep-Alive: timeout=5, max=90
Connection: Keep-Alive
Content-Type: application/json
तो यह लग रहा है। हालांकि एक ही समस्या मौजूद है - प्रतिक्रिया में सामग्री है, फिर शीर्षलेख मुद्रित होने पर अधिक सामग्री।
** केवल अंतर यह है कि इसमें प्रतिक्रिया में '5b03d' या '0' वर्ण नहीं हैं।
EDIT_3_ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ _
के रूप में करने के लिए कहा यहां मेरे PHP कोड
012 का सारांश है$dataArray = array(
'ResultsData'=>array(
array('test'=>'test length'),
array('test'=>'test length'),
array('test'=>'test length'),
...
));
$return = json_encode($dataArray);
header('Content-Length: '.strlen($return));
header('Content-type: application/json');
echo $return;
आपका PHP कोड कैसा दिखता है? यह बहुत असामान्य है। –