我正在使用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;
答案 0 :(得分:2)
$.getJSON
方法已经将服务器的结果解析为JSON,因此您无需再次调用$.parseJSON
。传递给回调的data
参数已经代表了一个可以直接使用的JSON对象:
$.getJSON(url, function(data) {
$target.html(data.html);
});