无法在JQuery $ .get()中返回/处理JSON

我在调用$ .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

您需要使用jQuery 1.4.x,否则您必须自己解析返回的数据。

 data = JSON.parse(data); 

您的PHP脚本需要将响应的Content-type标头设置为application/json ,例如:

 header('Content-type: application/json'); 

或者,您可以通过使用dataType选项告诉jQuery将dataType JSON。 或者只使用getJSON ,它就是这样做的。 🙂

编辑抱歉,刚注意到:您正在传递dataType参数以get 。 我的建议是仔细查看响应文本:JSON真的有效吗? ( 这个网站可以帮助那里。)从您引用的PHP看起来应该是,但如果在之前或之后有任何其他输出…