2

修繕;

単純なjQueryを使用して、サーバーからテキストをダウンロードしています。データ型はjsonです。

$.get('http://169.254.100.5/ajax.php',{action:'p',i:'{$data['id']}'},function(data)
{
     $.each(data.responses, function(i,response)
     {
       alert(response.longtext)
     }
}

response.longtextが短い場合(「helloworld」のように1000文字未満)、問題はなく、スクリプトは正常に動作します。

response.longtextが長い場合(lorem ipsumの段落のように)、パーサーエラーが発生します。

いくつかの実験を行い、$。ajax(...)を使用して書き直し、$。eachメソッドを削除しましたが、それでもパーサーエラーが発生します。

error: function(XMLHttpRequest, textStatus, errorThrown) 
{
    alert("err: "  + textStatus);
}
4

3 に答える 3

0

サーバーでデータをどのように印刷しますか?たぶん、あなたは文字を正しくエスケープしなかったでしょう。PHPで使用json_encodeしますか?

于 2009-12-29T23:16:41.843 に答える
0

応答が正しくエンコードされていない可能性があります。responseTextでeval()を実行してみましたか?

于 2009-12-29T23:17:44.323 に答える
0

ああ、悪いことに、エラーの原因となったのは lorem ipsumの\tandでした。\n

ループを使用json_encodeしてオンザフライでjsonを生成しているため、使用していませんでした。$stmt->fetch()問題のある文字を切り捨てただけで問題ありません。

于 2009-12-29T23:25:08.820 に答える