-1

我正在尝试编写一个使用 jquery 的帖子添加用户评论的代码。我将参数传递给 ajax.php 并接收到 josn 数据,如下所示:

var formObjectData = $('#' + form_id).serialize() + '&flag=add_comment'; // all 
$.post(
    'http://192.168.3.3/myblog/ajax.php',formObjectData,
    function(data) {
        if (!data)
            alert("No data");
        else {
            if (data.msg!='')
                $("#add_comment").html(data.msg);
        }
    },
    'json'
);

在 ajax.php 上

$cid = $classobj->add_comment($comment,$id); // to add the comment in db and return the comment id
$ajax['msg'] = $msg ? $msg : '';
if ($cid) {
    $ajax['cid'] = $cid;
}
echo json_encode($ajax);

我的问题是 jquery 返回许多带有 json 数据的不敬的 html 标签,如下所示

<html>
    <head>
        <style type="text/css">
        </style>
    </head>
</html>{"msg":"hello","cid":"600"}

解决这个问题的最简单方法是什么?提前致谢!!

4

1 回答 1

0

如果您的 ajax.php 文件包含任何样式或 HTML,您将在执行 AJAX 请求时返回该数据。从您的 ajax 端点中删除任何样式或 HTML。一种简单的方法是在 JSON 编码之后exit()die()之后(如果它后面有 HTML)或完全删除它。

另外,请记住在之前包含以下代码json_encode($ajax)

header('Content-Type: application/json');- 这将确保它始终被识别为 JSON 对象。我知道 Chrome 在推断您发回的内容实际上是 JSON 时肯定有问题!

于 2012-04-30T08:42:50.837 回答