-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 エンコード (その後に HTML がある場合) の前後に行うか、完全に削除することですexit()die()

また、 の前に次のコードを含めることを忘れないでjson_encode($ajax)ください。

header('Content-Type: application/json');- これにより、常に JSON オブジェクトとして認識されるようになります。Chrome は確かに、あなたの送り返しが実際には JSON であると推測するのに問題があることを知っています!

于 2012-04-30T08:42:50.837 に答える