Объясните, почему первый вариант с 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?