0

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

Ajax 通过“id”参数很好地发送,PHP 接收它,它是否工作并发送回 json 响应,这是问题开始的地方。其中一个参数始终为空,原因我似乎找不到。我已经手动测试了 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 的问题所建议的那样,但这没有任何区别。

非常感谢您的帮助,干杯:)

4

1 回答 1

1

你有没有尝试而不是id: theParams.id使用id: 1我在尝试处理不正确的 json 变量时遇到了一个大问题。

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

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

您是否尝试过您的 php 文件echo json_encode(array("imgUrl" => 'image.jpg', "id" => '1'));根据这些测试,也许我可以为您提供更多帮助

于 2013-03-05T16:46:01.103 回答