php json_encode没有返回正确的json编码字符串

时间:2011-12-15 10:28:10

标签: php jquery ajax json

我正在使用jquery ajax调用来接受json响应:

 var posturl = '/admin/getparamdetails/';
    var data = "adnetworkId="+adnetworkId;
    $.ajax({
        type: "POST",
        url: posturl,
        data : data,
        datatype: "json",
        success: function(msg){
            //$("#displayPramForm").html(msg);
            //alert('hello'+msg.length+' '+msg.hello.length);
            console.log(msg);
            if(msg!='')
            {
                alert(msg.hello);
            }
        },
        failure: function(msg){}
    });

在我的php后端函数中,我在一个简单的数组上使用json_encode,如下所示:

 $json_encoded_string =  json_encode(array("hello"=>'abc'));
 echo $json_encoded_string;
 die;               

提醒(msg.hello)为我返回 undefined 。这里出了什么问题? 此外,在我的 console.log 中,我可以将输出显示为:

{"hello":"abc"}     

2 个答案:

答案 0 :(得分:2)

在返回数据上使用parseJSON

if (msg) {
  msg = $.parseJSON(msg);
  alert(msg.hello);
}

答案 1 :(得分:1)

您必须将数据作为Content-Type“application / json”发送,否则将无法正常工作。

只需在PHP文件中添加以下内容:

header('Content-type: application/json');