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

时间:2010-05-07 08:56:33

标签: jquery 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

2 个答案:

答案 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);