JQuery .post不工作​​,似乎没有加载帖子页面

时间:2011-07-23 18:20:42

标签: php javascript jquery ajax post

这令人困惑......我不明白为什么这不起作用......看起来非常简单:

var _t = $('#newbook-title').serialize();
var _a = $('#newbook-author').serialize();
var _u = $('#newbook-authorurl').serialize();
var _w = $('#newbook-why').serialize();

$.post("newbook.php", {t: _t, a: _a, u: _u, w: _w}, function(data) {
    alert( data.status + ',' + data.message);
});

然后在我的newbook.php中:

<?php
    echo "{\"status\": \"false\", \"message\":\"Made it here.\"}";
    return;
?>

警报始终未定义,未定义为什么?我也尝试过.val()而不是.serialize()

1 个答案:

答案 0 :(得分:4)

可能是因为内容未被解释为JSON。告诉$.post您希望收到的格式:

$.post("newbook.php", {t: _t, a: _a, u: _u, w: _w}, function(data) {
    alert( data.status + ',' + data.message);
}, 'json');

另一种选择是发送JSON内容类型标头,jQuery将为您解释。这是更符合标准的“正确”方法:

// before content is output in your PHP script
header('Content-type: application/json');