ajax Json返回null

时间:2013-03-05 16:20:14

标签: php jquery ajax json

我通过json响应对php进行了简单的ajax调用。我已多次写这些,但从未遇到过这个问题。

Ajax发送“id”参数很好并且PHP接收它,它是否正常工作并发回json响应,这是问题开始的地方。其中一个参数始终为null,这是我无法找到的原因。我手动测试了php,它返回了两个值。我检查了ajax,看它是否恢复了id参数,确实如此。所以问题在于json响应被发送的地方,并且它被jquery ajax接收。

 // This gets the paramaters from the url
 theParams = parseURLParams(document.URL);

 // ^^ it returns an id, like this  {"id":"4a17bcb93fe3fac3978671a66959d902"}

 $.ajax({
    url: 'viewer_code.php',
    type: 'GET',
    dataType: 'json',
    data: {id: theParams.id},
    success: function(dataImg) { 

    alert(dataImg.imgUrl);

    }
});

和PHP(一切似乎很好,所有人都将被消毒)

    $id = $_GET['id'];

    $q = "SELECT * FROM `images` WHERE id = '$id'";
    if(!($result_set = mysql_query($q))) die(mysql_error());
        $row = mysql_fetch_array($result_set);

        $thumb = $row['thumb'];
        $image = $row['image'];

        header('Content-Type: application/json');
        echo json_encode(array("imgUrl" => $image, "id" => $id));

当手动测试PHP时,它返回:{“imgUrl”:“pictures / 75de7c1c30d956113f937a8e685f7e50.jpg”,“id”:“4a17bcb93fe3fac3978671a​​66959d902”}

总是返回null的imgUrl,任何人都知道为什么会发生这种情况? 哦,我已经尝试过从GET切换到POST,因为之前有关SO的问题已经建议,但它没有任何区别。

非常感谢任何帮助,欢呼各位:)

1 个答案:

答案 0 :(得分:1)

您是否尝试使用id: theParams.id代替id: 1我尝试处理不正确的json变量时遇到了大问题。

另一方面,我正在做类似的代码,但没有

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

你有没有尝试过你的php文件echo json_encode(array("imgUrl" => 'image.jpg', "id" => '1'));根据这些测试,我可以帮助你更多