この問題は完全に失われています。非常に長いjson応答が停止し、HTTPヘッダーをテキストとして送信し続けます。
私はjson応答を取得するajaxクエリを持っています。ほとんどの状況でクエリはうまく動作しますが、jsonレスポンスが非常に大きいときには、つまずくようです。
問題は、応答の形式で終わるある:
...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
...表し同じ「{」テスト「:」テスト長さ「}のより、」ストリング
だからREPONSEフォームであると思われる:
- 体 で印刷データ
- HTTPレスポンスヘッダの最後の部分
- データ
- のキャラクターの5b03d "
- 最初の部分の文字「0」
これはしかし、それは360791文字で結構ですが、ないで起こることは、応答の正確な長さがありません372797文字で表示されます。
私はYiiのPHPフレームワークを使用していますが、そこでは広々とした検索がありませんでした。
ウェブサーバーが応答を複数の部分に分割しているか、タイムアウトしてから再開するようです。
おそらく最大リターンがありますか?
EDIT _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ ___
私はアプリケーション/ jsonコンテンツタイプを試してみましたが、それは起こっています。 TES次のように(applciaiton/JSONエンコーディングを使用した場合)体で返されるヘッダーのテキスト部分がある:私は、この特定のスクリプトのチャンクエンコーディングをオフにするにはどうすればよい
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
?
** EDIT 2_ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ _
チャンクとして、それはもはや送信されているようなので、それが見えない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コードの概要です
$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コードはどのようなものですか?これは非常に珍しいことです。 –