1

私の Ajax-Request は次の結果を返します (これは通常、有効な JSON 文字列です)。

{"status":"ERROR","message":"Errore: Ti prego di inserire la domanda!"}

これは応答ヘッダーです。

Connection:Keep-Alive
Content-Length:80
Content-Type:application/json; charset=utf-8
Date:Sat, 16 Feb 2013 10:02:18 GMT
Keep-Alive:timeout=5, max=97
Server:Apache/2.2.21 (Win32) PHP/5.3.8 mod_perl/2.0.4 Perl/v5.10.1
X-Powered-By:PHP/5.3.8

JSON 文字列をブラウザ コンソールからhttp://jsonlint.comなどの JSON パーサーに直接コピー アンド ペーストすると、「予期しないトークン」という結果になります。なんで?

テキストエディターで同じ文字列を書き換えることでもテストしました-もちろん、これは「有効」という結果になります...

4

1 に答える 1

2

あなたが言うように、あなたが引用したのは有効なJSONです。問題の原因となっている「見えない」文字が 1 つ以上あると思います。(それ/それらはあなたの質問には存在しません。コピーして貼り付けて「有効な」結果が得られます。)通常、この質問が表示されるのはそれです。

Context-Lengthこれは、ヘッダーによって裏付けられています。コンテンツの長さは 80 と表示されていますが、JSON には 71 文字しかなく、いずれも UTF-8 のマルチバイト文字ではありません。そのため、おそらく応答の最初または最後に、無効な非表示文字が疑われる傾向があります。http://jsonlint.comで問題を引き起こしているのと同じ文字列を基本的なテキスト エディターに貼り付ければ、それらを見つけることができるはずです。通常、それらは面白い記号として表示されます。

于 2013-02-16T10:15:08.350 に答える