GET-запрос с помощью XMLHTTPRequest

Аватар пользователя Shipovnix Shipovnix 11 марта в 13:27

Drupal 9. Выполняю асинхронный GET-запрос к своему сайту через XMLHTTPRequest из js-скрипта:

function apiRequestExample() {
       
        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 у меня:

[11/Mar/2021:10:18:48 +0000] "GET /api/example HTTP/1.1" 200 438 "http://mysite.com/test" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0"

Сервер вроде как отдает статус 200? Непонятно...

Если же в адресной строке браузера перейти на указанный адрес /api/example, то всё нормально, получаю ожидаемый ответ с сервера.

Раньше, в Drupal 7, вообще не возникало затруднений на этот счёт, по сути, я js с XMLHTTPRequest-вызовами оттуда и взял.

Комментарии

Аватар пользователя denis.noskov denis.noskov 13 марта в 10:19
1

а если через AJAX? если это GET, то можно в адресной строке передать параметры. Будет, как в браузере.
типа $.ajax({url:'/get_phone.php?phone='+'79123456789', complete: function (response)...