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

Почему CURL выдает 302?

Всех приветствую.
Такая проблема отправляю POST запрос через CURL на другой сайт, но мне выдает ошибку 302.
А как я понял это редирект. А редирект на этом сайте возникает только при запросе без POST. Следовательно сервер не получает наш POST запрос. В чем может быть проблема?
Более полугода назад как то решал эту проблему, но уже забыл.
Подскажите добрые люди.
spoiler
<?php
$myCurl = curl_init();

curl_setopt_array($myCurl, array(
    CURLOPT_URL => 'http://sgu.ru/schedule/teacher/search',
    CURLOPT_RETURNTRANSFER => true,	
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => http_build_query(array('js' => '1', 'search' => 'Ситникова' ))));
$response = curl_exec($myCurl);
curl_close($myCurl);

echo "Ответ на Ваш запрос: ".$response;
?>

Вот как устроен сам POST запрос на этом сервере:
spoiler
function findTeacher(){
  var search = jQuery(":input[name=query]").attr('value');

  if(search != '')
  jQuery.ajax({
    url: "/schedule/teacher/search",
    //url : "http://sgu/schedule/teacher/search",
    type: 'POST',
    data: {
      js : '1',
      search: search
    },
    dataType: 'json',
    timeout: 8000,
    beforeSend: function(){
      jQuery("#results").html(
        "<div style='color:grey;padding:0px;10px;font-style:italic'>" +
          "<img src='/sites/all/modules/ssu/ssu_schedule/loading.gif'>&nbsp;Подождите, Ваш запрос выполняется" +
        "</div>");
    }, 
    success: function(json){
      var content = "";
      jQuery.each(json, function(){
        var teacher = this['id'].split('id');
        teacher = teacher[0]||teacher[1];
        content += "<a href='/schedule/teacher/"+teacher+"'>"+this['fio']+"</a><br>";
      });
      jQuery("#results").html( "<div>"+content+"</div>");
      if(content == '')
        jQuery("#results").html("<div>Поиск не дал результатов</div>");
    },
    error: function() {
      jQuery("#results").html("<div>Во время выполнения запроса возникла ошибка. Попробуйте повторить попытку позже</div>");
    }
  });
};
  • Вопрос задан
  • 730 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@truejunya Автор вопроса
Решил этот вопрос, сделал запрос через file_get_contents
$postdata = http_build_query(

    array(

        'js' => '1',

        'search' => 'Ситникова'

    )

);

 

$opts = array('http' =>

    array(

        'method'  => 'POST',

        'header'  => 'Content-type: application/x-www-form-urlencoded',

        'content' => $postdata

    )

);

$context  = stream_context_create($opts);

$result = file_get_contents('https://www.sgu.ru/schedule/teacher/search', false, $context);
echo $result;
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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