fast-je
@fast-je
Пишу на php.

Xhr не отсылает post запрос?

Есть вот такой код
Хочу отправить цифру в файл и получить данные с файла.
В файле loader.php делаю такой ответ "echo json_encode($_REQUEST);", чтобы убедить пришло ли что-нибудь. Но возвращает пустой массив. Прощу помощи, что здесь не так ?

document.addEventListener("DOMContentLoaded", function(event) {
    var inProgress = false;

    var startFrom = 10;

    window.addEventListener('scroll', function() {
        var scrollHeight = Math.max(
            document.body.scrollHeight, document.documentElement.scrollHeight,
            document.body.offsetHeight, document.documentElement.offsetHeight,
            document.body.clientHeight, document.documentElement.clientHeight
        );

        if(window.pageYOffset + window.innerHeight >= scrollHeight - 200 && !inProgress) {

//
            let request = obj => {
                return new Promise((resolve, reject) => {
                    let xhr = new XMLHttpRequest();
                    xhr.open(obj.method || "GET", obj.url);
                    if (obj.headers) {
                        Object.keys(obj.headers).forEach(key => {
                            xhr.setRequestHeader(key, obj.headers[key]);
                        });
                    }

                    xhr.onload = () => {
                        if (xhr.status >= 200 && xhr.status < 300) {
                            resolve(xhr.response);
                        } else {
                            reject(xhr.statusText);
                        }
                    };
                    xhr.onerror = () => reject(xhr.statusText);
                    xhr.send(obj.body);
                });
            };

            request({url: "/loader.php", method: "POST", body: "1"})
                .then(data => {
                    let tasks = JSON.parse(data);
                    console.log(tasks);
                    let html = "";
                    tasks.forEach(task => {
                        html +=
                            "<li id=\"content__list\">" +
                            "<span>" + task.id + "</span> " +
                            "<span>" + task.title + "</span>" +
                            "</li>";
                    });
                    document.getElementById("content").innerHTML = html;
                })
                .catch(error => {
                    console.log(error);
                });

        }
    });
});
  • Вопрос задан
  • 193 просмотра
Решения вопроса 1
@roxik
Попробуй добавить

xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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