我需要将一些数据发送到外部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。只是一个简单的回报似乎不起作用。
先谢谢, 标记
答案 0 :(得分:3)
答案 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返回,但打印数据的任何内容都可以。