JSON无法正确解码

时间:2012-12-23 18:59:16

标签: javascript json

我正在使用Twitter Bootstrap作为我的Web应用程序的基础框架。

我正在尝试使用JSON将数据从我的PHP脚本传回客户端,使用这段javascript:

$(function($) {
    $('form[data-async]').live('submit', function(event) {
        var $form = $(this);
        var $target = $($form.attr('data-target'));

        $.ajax({
            type: $form.attr('method'),
            url: $form.attr('action'),
            data: $form.serialize(),
            dataType: 'json',

            success: function(data, status) {
                $.getJSON(url, function(data) {
                    var response = $.parseJSON(data);
                    $target.html(response.html)
                });
            }
        });

        event.preventDefault();
    });
});

然而,写入模型的是JSON数据,而不是我期望的HTML。

服务器端代码:

$ContentBits['content'] = $this->content;

    $html = ContentFactory::capture_output(ROOT . DS . 'library' . DS . 'cbd' . DS . 'templates' . DS . 'ajaxAlert.php');

    $jsonArray = array(
        'html' => $html,
        'resultCode' => 1
    );
    $json = json_encode($jsonArray);
    header('Content-Type: application/json');
    echo $json;

1 个答案:

答案 0 :(得分:2)

$.getJSON方法已经将服务器的结果解析为JSON,因此您无需再次调用$.parseJSON。传递给回调的data参数已经代表了一个可以直接使用的JSON对象:

$.getJSON(url, function(data) {
    $target.html(data.html);
});