Мне нужно отправить некоторые данные на внешнюю 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. Простое возвращение, похоже, не работает.
Спасибо, Advance, Mark
Казалось бы, API REST даст вам JSON, но вам нужно проверить, действительно ли он JSON (JSONP здесь недействителен)?
Вы можете просто отбросить dataType в своей функции Ajax и позволить 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, но все, что печатает данные, в порядке.
Вы должны повторить полученный JSON:
echo $photos;
Если $photos
еще не JSON, используйте json_encode
:
echo json_encode( $photos);
попробуй это
echo json_encode( $photos);
вам нужно эхо
echo $photos;
и, как указано @nickb, если $ photo еще не json, тогда сначала преобразуйте его в json, а затем эхо.
echo json_encode($photos)
в jQuery, если вы хотите получить данные
onSuccess: function(data, status) { //var data contains the returned json. }