私は他のサイトへの応答を生成するために、JSON APIプラグイン(http://wordpress.org/extend/plugins/json-api/)と一緒にWordPressを使用しています。json_encodeを使用した奇妙なJSONエンコーディング
私は本当に奇妙な問題(我々はPHP 5.3.6を使用している)私は、次の配列を渡すとき、http://pastebin.com/xdfYjrvKはそれが私にこの(JSONコンテンツタイプを持つ)を与える)(json_encodeするヒットしました:http://pastebin.com/T61XGPP5
をだから、上記の例では、最後の2609と0は、レスポンスのサイズに応じて変化します。より多くのコンテンツ - >より高い16進数です。また、応答の量が「十分に高い」場合にのみ表示されるため、小さな応答でも機能します。
私はそれがプラグインだと思っていましたが、ローカルで(Mac OS Xの2つの異なるマシンで)動作し、VPS(Debian、Apache、Nginx、PHP)のすべてのパッケージを最新バージョンに更新しました。
代わりに、アプリケーション/ JSONのプレーンテキストで$結果を出力する際に、コンテンツタイプのない送信する場合にのみ表示されます:
$charset = get_option('blog_charset');
if (!headers_sent()) {
header('HTTP/1.1 200 OK', true);
header("Content-Type: application/json; charset=$charset", true);
}
echo $result;
$文字セットがUTF-8に設定されています。
Google Chromeのコンソールには、「リソースはドキュメントとして解釈されますが、MIMEタイプapplication/jsonで転送されます」と表示されます。
だから、誰かがここで何が起こっているのか分かりませんか?
$ resultはどこに初期化されていますか?それはjson_encode-dの値ですか? –
はい、それはを内蔵したjson_encodingの世話を別の関数から来 –