Drupal 9. Выполняю асинхронный GET-запрос к своему сайту через XMLHTTPRequest из js-скрипта:
function apiRequestReply() {
alert("http.readyState = " + http.readyState + ", http.status = " + http.status);
}
var http = new XMLHttpRequest();
var nocache = 0;
nocache = Math.random();
var requestCallback = window.location.protocol + "//"
+ window.location.host + "/"
+ "api/example";
http.open('get', requestCallback, true);
http.onreadystatechange = apiRequestReply();
http.send(null);
}
Получаю всегда readyState = 1, status = 0. При этом в /var/log/apache2/access.log у меня:
Сервер вроде как отдает статус 200? Непонятно...
Если же в адресной строке браузера перейти на указанный адрес /api/example, то всё нормально, получаю ожидаемый ответ с сервера.
Раньше, в Drupal 7, вообще не возникало затруднений на этот счёт, по сути, я js с XMLHTTPRequest-вызовами оттуда и взял.
Комментарии
а если через AJAX? если это GET, то можно в адресной строке передать параметры. Будет, как в браузере.
типа $.ajax({url:'/get_phone.php?phone='+'79123456789', complete: function (response)...