开发者

Unable to return/process JSON in JQuery $.get()

I have a problem returning/processing JSON data while calling $.get() function. Here's the code:

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

So this is the code. But the response is always taken as开发者_JAVA百科 string in the jquery. data.status and data.error is undefined.


Your PHP script needs to set the Content-type header of the response to application/json, e.g.:

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

Alternately, you can tell jQuery that's going to get JSON back by using the dataType option. Or just use getJSON, which does exactly that. :-)

Edit Sorry, just noticed: You are passing the dataType parameter to get. My suggestion is to look carefully at the response text: Is it really valid JSON? (This site can help there.) From your quoted PHP it seems like it should be, but if there were any other output before or after...


You need to use jQuery 1.4.x, otherwise you have to parse the returned data by yourself.

data = JSON.parse(data);
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜