Javascript JSON没有正确解码
我正在使用Twitter引导作为我的web应用程序的基本框架 我尝试使用JSON将数据从PHP脚本传递回客户端,使用以下javascript: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({
$(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'
并查看这是否有效。如果这样做有效,那么这个函数就有问题了。如果它不起作用,那我们拭目以待。