php - JQuery .post 不起作用,似乎没有加载帖子页面

标签 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()

最佳答案

可能是因为内容没有被解释为 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/

相关文章:

php - MySQL 插入日期日志

php - 为什么要编译 PHP 文件?

php - 反斜杠作为函数名的前缀有什么作用?

javascript - 根据每个标签的最大高度将标签的文本内容拆分为多个标签?

javascript - 此 JS/jQuery 代码在 Firefox 中有效,但在 Chrome 中无效

php - 在 Woocommerce 中更改产品库存可用性文本

javascript - j 呈现的 collection_select 输出 HTML <\/option>\n

javascript - jQuery - 单击一个元素会触发另一个元素

javascript - HTML - 用户添加的变量

jquery - ajax 调用不处理 gzipped JSON