我在调用$ .get()函数时返回/处理JSON数据时遇到问题。这是代码:
JQuery的:
$.get("script.php?",
function(data) {
if (data.status) {
alert('ok');
} else {
alert(data.error);
}
},'json');
PHP
if ($r) {
$ret = array("status"=>true);
} else {
$ret = array("status"=>false,"error"=>$error);
}
echo json_encode( $ret );
所以这就是代码。但是响应总是在jquery中作为字符串。 data.status和data.error是undefined
。
答案 0 :(得分:4)
您的PHP脚本需要将响应的Content-type
标头设置为application/json
,例如:
header('Content-type: application/json');
或者,您可以使用dataType
选项告诉jQuery将返回JSON。或者只使用getJSON
,就是这样。 : - )
修改抱歉,您注意到: 将dataType
参数传递给get
。我的建议是仔细查看响应文本:JSON真的有效吗? (This site可以帮助那里。)从你引用的PHP看起来它似乎应该,但是如果在...之前或之后还有其他输出......
答案 1 :(得分:1)
您需要使用jQuery 1.4.x,否则您必须自己解析返回的数据。
data = JSON.parse(data);