2

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

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

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

这是 htat 接收数据的 PHP 代码,需要返回一些数据:

<?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

4 回答 4

3

您需要回显生成的 JSON:

echo $photos;

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

echo json_encode( $photos);
于 2012-05-04T18:50:12.363 回答
1

你需要回应

echo $photos;

并且正如@nickb 所说,如果 $photo 还不是 json,则先将其转换为 json,然后再回显。

echo json_encode($photos)

如果要获取数据,请在 jQuery 中

onSuccess: function(data, status) {
    //var data contains the returned json.
}
于 2012-05-04T18:50:41.553 回答
1

试试这个

echo json_encode( $photos);
于 2012-05-04T18:54:36.560 回答
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 格式返回数据,但打印数据的任何内容都可以。

于 2012-05-04T19:26:55.753 回答