如何将json字符串发送回jquery

时间:2012-05-04 18:49:34

标签: php jquery json

我需要将一些数据发送到外部php页面,该页面必须将所需数据发送回jQuery。我的问题是如何将外部页面中的数据发送回发送它的页面上的jQuery。

这是将数据发送到外部页面的jQuery代码:

function LoadImageData(url)
{    
    $.ajax({
      url: 'get_image_data.php',
      dataType: 'json',
      data: {'url': url },
      success: SetTag()
    }); 
}

这是PHP代码htat接收数据并需要发回一些数据:

<?php
require_once('FaceRestClient.php');

$apiKey = '**********************';
$apiSecret = '**********************';
$api = new FaceRestClient($apiKey, $apiSecret);

$active_url = $_POST['url'];
$photos = $api->faces_detect($active_url);

return $photos;
?>

所以我的问题是,如何将数据发送回jQuery。只是一个简单的回报似乎不起作用。

先谢谢, 标记

4 个答案:

答案 0 :(得分:3)

您需要回显生成的JSON:

echo $photos;

如果$photos不是JSON,请使用json_encode

echo json_encode( $photos);

答案 1 :(得分:1)

你需要回应

echo $photos;

并且由@nickb管理如果$ photo不是json,那么首先将其转换为json然后回显。

echo json_encode($photos)
如果你想获取数据,在jQuery中

onSuccess: function(data, status) {
    //var data contains the returned json.
}

答案 2 :(得分:1)

试试这个

echo json_encode( $photos);

答案 3 :(得分:1)

有人会认为REST API会给你JSON,但你需要检查它是否是有效的JSON(JSONP在这里无效)?

你可以在你的Ajax函数中删除dataType并让jQuery弄明白,这样至少如果它不是有效的JSON你就会得到回报。

试试这个:

$.ajax({
      url: 'get_image_data.php',
      type: 'POST',
      data: {'url': url }
    }).done(function(data) {
       console.log(data);
    }).fail(function() {
       console.log('Your ajax just failed');
});

打开控制台,查看打印内容

在PHP函数结束时,我倾向于这样做:

exit(json_encode($someData));

要将数据作为JSON返回,但打印数据的任何内容都可以。