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

Как получить GET запросы через XMLHttpRequest?

Объясните, почему первый вариант с XMLHttpRequest не работает, хотя запросы в обоих случаях приходят на сервер!?
Код с XMLHttpRequest. Вот index.php:

<script>
function loadAjax() {
  var xhr = new XMLHttpRequest();

  var params = 'q=1';

  xhr.open("GET", '/ajax.php?'+params, true);

  xhr.send(params);
}
</script>

<button onclick="loadAjax()" id="button">Ловим GET</button>


Вот файл ajax.php:
if (isset($_GET['q'])){
    header("Content-type: text/txt; charset=UTF-8");
    echo 'Я из аякса! Меня зовут'.$_GET['q'];
}


Вот что вижу в логах:
"GET /ajax.php?q=1 HTTP/1.1" 200 315 "http://hello.ru/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36"


А теперь пишу с помощью небольшой библиотеки:
<script>
function SendGet() {
  $$a({
    type:'get',
    url:'ajax.php',
    data:{'q':'1'},
    response:'text',
    success:function (data) {
      $$('result',$$('result').innerHTML+'<br />'+data);
    }
  });
}
</script>

<div onclick="SendGet();">Отправить GET запрос через Ajax</div><br />


Так же файл ajax.php с ним:
if(isset($_GET['q'])) {
    header("Content-type: text/txt; charset=UTF-8");
    if($_GET['q']=='1') {
        echo 'запрос GET успешно обработан, q = 1';
    }
    else {
        echo 'карявый GET запрос';
    }
}


И ОН РАБОТАЕТ, echo 'запрос GET успешно обработан, q = 1'; выполняется.
А запрос при этом абсолютно такой же (логи смотрю в OpenServer 5.2.2)

"GET /ajax.php?q=1 HTTP/1.1" 200 315 "http://hello.ru/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36"


В чём проблема? Что не так в моём XMLHttpRequest?
  • Вопрос задан
  • 263 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@Dredder Автор вопроса
Я не получал ответ с сервера, потому что не понимал технологию работы аякса. Нужно получать ответ с сервера и рендерить его на страничке клиента, а я в место этого просто отправлял запрос на сервер.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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