使用jquery解析PHP生成的JSON返回' undefined'

时间:2014-06-24 03:39:23

标签: jquery ajax json

我正在为我们的高级项目创建一个简单的模块,用于检查数据库中是否已存在电子邮件。 这是我的php文件的重要部分,它显示了格式化的JSON:

  
    

die(json_encode(array(2 => "Email already taken!")));

  

对于那个例子,那应该返回= {" 2","已经发送电子邮件!"}

以下是javascript代码(嵌入式代码):

$(function() {
   $("#signin").submit(function() {
     // validate and process form here
     $.ajax({
        type: "GET",
        url: "mailcheck.php",
        data: "email="+document.getElementById('email').value,
        success: function(data) {
        var parsed = $.parseJSON(data);
        //display message back to user here
          document.getElementById('msg').innerHTML = parsed.Msg;
          $("input#email").val("");
        },  
     });
   return false;
   });
});

问题是,我总是得到“未定义的”#。问题是什么?

1 个答案:

答案 0 :(得分:1)

在你的PHP文件中回显json_encode,就像@ pc-shooter所提到的那样。如果在ajax调用中设置dataType: 'json',,则无需解析JSON。

您可能还需要在PHP文件中设置内容类型。

header('Content-Type: application/json');
echo json_encode(array(2 => "Email already taken!"));