Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON没有正确解码_Javascript_Json - Fatal编程技术网

Javascript JSON没有正确解码

Javascript JSON没有正确解码,javascript,json,Javascript,Json,我正在使用Twitter引导作为我的web应用程序的基本框架 我尝试使用JSON将数据从PHP脚本传递回客户端,使用以下javascript: $(function($) { $('form[data-async]').live('submit', function(event) { var $form = $(this); var $target = $($form.attr('data-target')); $.ajax({

我正在使用Twitter引导作为我的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;

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

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

你得到了什么样的回应?我指的是
response
的值,并检查
$target
。尝试用
$form.attr('action')
替换
$.getJSON
中的
url
。这可能是因为在
html
属性中仍然有JSON。检查并修复服务器端代码,以便在此属性中存储HTML。我添加了用于生成JSON的PHP脚本,直到最后,JSON才出现。在您显示的服务器端脚本中,您似乎使用了一些
ContentFactory::capture\u output
函数,我完全不知道它在做什么,也不知道它返回什么。那么这个函数返回什么呢?如果你想让它工作,请确保它是HTML。所有的函数都是,输出缓冲包装在一个函数中。原始HTML以字符串形式返回。我应该对HTML进行base64_编码和解码吗?这并没有回答我的问题:这个函数返回什么?你能提供一些样本输出吗?如果它是原始的HTML字符串,那么这应该可以工作。您不需要任何base64编码。例如,不使用此函数,只需对一些示例html进行硬编码:
$html='Hello'
并查看这是否有效。如果这样做有效,那么这个函数就有问题了。如果它不起作用,那我们拭目以待。