Задать вопрос

Как обработать ответ, полученный после запроса к серверу VK?

Пользователь вводит id группы в окно ввода и нажимает кнопку. При нажатии кнопки вызывается функция get_group(). Она описана ниже. AJAX-запрос отправляется скрипту, который также приведён ниже. Как мне получить ответ от сервера и обработать его? В каком файле его ловить?
Я считал, что это можно сделать с помощью curl, но что-то не выходит. Прошу прощения за глупые для кого-то вопросы, но я только начал работать с этой библиотекой и не имею нужного опыта. Да и понимание работы curl ещё не пришло.
function get_group(){
        $.ajax({
            url: "do_request.php",
            method: "GET",
            cache: false,
            data:"request=https://api.vk.com/method/groups.getMembers?group_id="+document.getElementById("group_id").value,
            success:function(data){
                document.getElementById("output_data").innerHTML="Работает";
            },
            error:function(jqXHR,textStatus){
                alert("Ошибка №"+jqXHR.status+": "+textStatus);
            }
        })
    }


Код скрипта, на который отправляется AJAX-запрос.
<?php
$request=curl_init($_REQUEST["request"]);
curl_setopt($request,CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec($request);
echo $result;
?>
  • Вопрос задан
  • 911 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
littleguga
@littleguga
Не стыдно не знать, а стыдно не интересоваться.
1. Ваш js код посылает запрос php скрипту, php скрипт что-то делает и выдает ответ, тогда в js происходит событие success и информация, которую отдал php скрипт, будет в переменной (data).

2. Для данной задачи можно использовать не curl, а банальный file_get_contents.
Вы делаете запрос на нужный url и выводите ответ(он будет в формате json => удобнее его обрабатывать уже на js).

3. Я бы немного переделал код и передавал бы в php скрипт не ссылку, а просто id группы ВК.
<?php
$vk_url = "https://api.vk.com/method/groups.getMembers?group_id=".$_GET["group_id"];
$vk_result = file_get_contents($vk_url);
echo $vk_result;
?>


А js код вот так: (так как Вы уже используете jQuery, то можно брать от него всё и не использовать document.getElementById)
function get_group(){
        $.ajax({
            url: "do_request.php",
            method: "GET",
            cache: false,
            data:"group_id=" +$("#group_id").value,
            success:function(data){
                console.log(data); //здесь будет ответ от вашего php скрипта
                $("#output_data").text("Работает");
            },
            error:function(jqXHR,textStatus){
                alert("Ошибка №"+jqXHR.status+": "+textStatus);
            }
        })
    }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы