在成功的jquery $ .post()之后需要帮助返回一个json字符串

时间:2015-06-13 16:16:23

标签: php jquery json

我发布到一个返回以下json编码字符串

的php页面
{"msg":"Hi {{full_name}}, <br \/>\r\n<br \/>\r\n  It was nice meeting you."}

我在<script> </script>

中添加了json对象

但是,当运行$.post()并尝试输出data.msg时,它会显示undefined

这是完整的代码

  $.post("mass_messaging.php",{template_id: template_id})

        .done(function(data){

            console.log(data.msg)
            //Outputs undefined??? 


        });

以下是我的HTML代码片段

<script>

addMustachePlaceHolder();

{"msg":"Hi {{full_name}}, <br \/>\r\n<br \/>\r\n  It was nice meeting you."}

</script>

任何帮助都会非常感激。

3 个答案:

答案 0 :(得分:2)

你可能需要解析json,因为它是一个字符串,你需要一个对象。如果设置数据类型,jQuery可以自动执行此操作:

$.post("mass_messaging.php", {template_id: template_id}, function(){}, "json")
                                                                       ^^^^^^ here

除此之外,还不完全清楚你要归还的是什么。你应该只从你的php脚本中返回一个有效的json字符串而不是其他内容;没有脚本标签,javascript等。

答案 1 :(得分:1)

我找到了答案。我正在使用返回json字符串的json_encode()。

所以我刚用data = JSON.parse(data);

它有效!

以下是我做的事情

$ .post(&#34; mass_messaging.php&#34;,{template_id:template_id})

    .done(function(data){

       data = JSON.parse(data);

            console.log(data.msg);



    });

答案 2 :(得分:0)

var obj = jQuery.parseJSON( data );
console.log(obj.msg);