我正在解决JQuery / JSON问题,$.getJSON
函数的响应没有意义。
所以这是我的Javascript代码摘录:
var jqxhr = $.getJSON("myPHPFunction.php", function() {
alert("success");
})
.success(function() { alert("second success"); })
.error(function() { alert("error"); })
.complete(function() { alert("complete"); });
PHP函数返回的JSON是:
{"sid":"12", "name":"somename", "email":"someemail"}
完整回复:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title>Untitled Document</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body> {"sid":"12", "name":"somename", "email":"someemail"}
</body>
</html>
当我运行脚本时,会出现一个对话框,显示error
。
一些在线验证器报告JSON语法正确。那为什么JQuery失败了?请注意,php和脚本都在同一个文件夹(在服务器上)和相同的域中。
答案 0 :(得分:3)
从评论中,您无法将JSON封装在HTML标记中。您需要确保返回的数据(“查看源代码”是验证这一点的好工具)是纯JSON。
答案 1 :(得分:1)
您的回复不得包含任何HTML!
可能你还需要设置正确的内容类型:
header("Content-Type: application/json");
echo('{"sid":"12", "name":"somename", "email":"someemail"}');
exit();
上面的代码应该有用。
请注意,您不得在标题行之前输出任何其他代码。