我有一个简单的Ajax调用PHP的JSON响应。我多次写过这些内容,但从未遇到过这个问题。ajax JSON返回null
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的”: “照片/ 75de7c1c30d956113f937a8e685f7e50.jpg” “id”:“4a17bcb93fe3fac3978671a66959d902”}
这是总是返回null的imgUrl,任何人都知道为什么会发生这种情况? 哦,我已经尝试从GET切换到POST,因为以前的问题已经建议,但它没有任何区别。
提前非常感谢您的帮助,欢呼家伙:)
你有没有尝试过使用print_r或其他东西来回应数组的值,而不是将它作为json发送,以确保ajax请求获得正确的值。 – Pitchinnate 2013-03-05 16:44:32
您正在使用[an **过时的**数据库API](http://stackoverflow.com/q/12859942/19068)并应使用[现代替换](http://php.net/manual/en/ mysqlinfo.api.choosing.php)。你也**易受[SQL注入攻击](http://bobby-tables.com/)**,现代的API会使[防御]更容易(http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php)自己从。 – Quentin 2013-03-05 16:47:26