PHP всегда получает пустой POST с XmlHttpRequest

Я пытаюсь выполнить XMLHttpRequest для входа в систему через POST и на самом деле делал это раньше. Я попытался переработать свой код из рабочего проекта и немного изменил его, но он больше не работает, и я, честно говоря, понятия не имею, почему.

Отправленный POST всегда пуст.

        var user = document.getElementById("username").value;
    var pw = document.getElementById("password").value;

    if (user != "" && pw != "") {

        if (window.XMLHttpRequest) {
            // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        } else {
            // code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status === 200) {
                var response = this.responseText;
                console.info(response);
                if (response == "-1") {
                  //do stuff
                } else if (response == "1") {
                    window.location.href = "/dashboard/"
                }
            }
        };
        var params = "username = "+user+"&password = "+pw+"&do=login";
        xmlhttp.open("POST","provider/SessionServices.php",true);
        xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
        xmlhttp.send(params);

Он действительно выполняет запрос, и я получаю свой код ошибки из-за отсутствия параметров POST. Я также отлаживал с помощью print_r ($ _ POST) и должен был убедиться, что данные POST никогда не отправляются.

Обновлено: SessionServices.php

print_r($_POST);
if (isset($_POST["username"]) && !empty($_POST["username"]) && 
isset($_POST["password"]) && !empty($_POST["password"])) {
if ($_POST["do"] == "login") {
    //login request by xmlhhtp
    $user = $_POST["username"];
    $pw = $_POST["password"];


    //do stuff
} else {
    echo "XH-102"; //unknown action
}
} else {
 echo "XH-101"; //user,pw,do empty or not set

он всегда выводит "Массив ( ) XH-101 "

нажмите F12 и посмотрите xhr, есть ли данные?

xianshenglu 07.04.2018 11:14

как уже упоминалось, я получаю текст ответа. Таким образом, сам запрос работает технически, но текст ответа - это просто моя отладка, печатающая пустой массив $ _POST и мой код ошибки

FabianJaho 07.04.2018 11:17

я имею в виду, вы можете проверить F12, чтобы увидеть данные, которые вы отправляете на сервер. если данные верны, я предполагаю, что проблема в серверной части

xianshenglu 07.04.2018 11:18

ну удивительно ты прав. Совершенно забыл проверить это, и он действительно говорит в данных формы, что параметры верны. Но я не могу понять, почему эти отправленные данные POST пусты при чтении другим php.

FabianJaho 07.04.2018 11:22

поэтому я предполагаю, что проблема в задней части ,,, ^ - ^

xianshenglu 07.04.2018 11:23

Просто добавил SessionServices.php, потому что я действительно не вижу в этом простом коде причины, почему $ _POST должен стать пустым.

FabianJaho 07.04.2018 11:25
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
6
48
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ладно, похоже, я нашел проблему. XMLHttpRequests (или просто с помощью POST?), Похоже, не работает локально или, по крайней мере, с использованием XAMPP. Когда я загрузил его на свой веб-сервер, он просто работал.

Другие вопросы по теме