0

CI アプリケーションの index.php に AJAX スクリプトがあります。この時点で、テストのために単純な文字列を返そうとしています。これには次のコードを使用しています。

<script>
    $(document).ready(function() {
        $.ajax({
            type: 'POST',
            url: 'index.php/loader/opc_client',
            dataType: 'json',
            cache: false,
            success: function(data) {
                console.log(data);
                $('#opc-results').html(data.test);
            }
        });
    });
</script>

この呼び出しの URL は、独自のコントローラーを持つスタンドアロン ファイルです。ブラウザでこのファイルに直接アクセスすると、正常に読み込まれ、期待どおりの結果が返されます。以下は私のPHPコードです:

<?php echo json_encode("test"); ?>

関数が起動された後、Firebug でポストの結果を確認できますが、Firebug ウィンドウでは、ビューの下に「空の文字列」が表示されるだけですPOSTconsole

手がかりはありますか?私はこれを理解していません...

更新: AJAX 呼び出しの成功パラメーターにIconsole.log('success')がある場合、適切にログに記録されるため、何らかの理由dataで空です

4

1 に答える 1

1

技術的にphpは文字列を配列として扱うことができますが、文字列をjson_encodeするだけではいけませんが、この場合は奇妙になると思います。それを配列にラップするだけです。テストが完了したら、クライアント側での処理が簡単になるため、キーと値のペアを使用する方がよいでしょう。つまり、obj.property です。

試すecho json_encode(arrray('test'));

于 2013-02-06T20:39:16.660 に答える