我正在为我们的高级项目创建一个简单的模块,用于检查数据库中是否已存在电子邮件。 这是我的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; }); });
问题是,我总是得到“未定义的”#。问题是什么?
答案 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!"));