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;

$photo がまだ json でない場合は、@nickb によって満たされているように、最初に json に変換してからエコーします。

echo json_encode($photos)

データを取得したい場合はjQueryで

onSuccess: function(data, status) {
    //var data contains the returned json.
}
于 2012-05-04T18:50:41.553 に答える
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 に答える
1

これを試して

echo json_encode( $photos);
于 2012-05-04T18:54:36.560 に答える