这很令人困惑...我不明白为什么这不起作用...看起来很简单:
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()
最佳答案
可能是因为内容没有被解释为 JSON。告诉 $.post
您希望收到什么格式:
$.post("newbook.php", {t: _t, a: _a, u: _u, w: _w}, function(data) {
alert( data.status + ',' + data.message);
}, 'json');
另一个选项是发送 JSON 内容类型 header ,jQuery 将为您解释该 header 。这是更符合标准的“正确”方法:
// before content is output in your PHP script
header('Content-type: application/json');
关于php - JQuery .post 不起作用,似乎没有加载帖子页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6802370/