0

我使用 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;
4

1 回答 1

2

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

$.getJSON(url, function(data) {
    $target.html(data.html);
});
于 2012-12-23T19:02:35.350 回答