0

$.getJSON我在函数响应没有意义的 JQuery/JSON 问题上大发雷霆。

所以这是我的 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 和脚本都在同一个文件夹(在服务器上)和同一个域中。

4

2 回答 2

3

从评论中,您无法将 JSON 封装在 HTML 标记中。您需要确保返回的数据(“查看源代码”是验证这一点的好工具)是纯 JSON。

于 2013-02-08T19:19:24.420 回答
1

您的回复不得包含任何 HTML!

可能您还需要设置正确的内容类型:

header("Content-Type: application/json");
echo('{"sid":"12", "name":"somename", "email":"someemail"}');
exit();

上面的代码应该可以工作。

请注意,您不得在标题行之前输出任何其他代码。

于 2013-02-08T19:14:00.227 回答