配列オブジェクトを返し、それをユーザーに表示するときに問題が発生しました。デモコードをご覧ください。基本的なスニペットですが、同じ考えがあります。ここに非常に長いコードを投稿することはできません。
Class foobar{
public function foo()
{
return array( 'bar' => 'value' );
}
}
このphpコードは別のクラスで使用されました
Class foobar_fetcher{
public function getFoo()
{
$fb = new foobar();
$result = $fb->foo();
return $result;
}
}
foobar_fetcherは、jsonヘッダーを使用してメインの実行ファイル(ajaxdispatcher.php)によって再び呼び出されます。
if( isset( $_POST['fetch'] ) ){
$httpresponse = new stdClass();
$fb_fetch = new foobar_fetcher();
$httpresponse->data = $fb_fetch->getFoo();
}
echo json_encode( $httpresponse );
最後に、このajaxdispatcherはjqueryajaxによって呼び出されました。
$.ajax({
url: 'ajaxdispatcher.php',
type: 'post',
data: {fetch:'fetch'},
success: function( data ){
if( data ) console.log( data );
}
});
さて、データを印刷しようとすると、サーバーからの応答がありません。しかし、foobarクラスの下のfoo()の戻り値を整数または文字列に変更すると、物事はうまくいくでしょう。