Javascript XMLHTTPREQUEST Отправка сообщения GET на localhost - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь отправить данные формы POST, используя чистую javascript библиотеку XMLHTTPREQUEST. Моя функция javascript сначала получает все данные формы html и очищает их, а также проверяет правильность формата перед тем, как вставить его в объект.
Затем используется обычная библиотека запросов для отправки JSON.stringify(Object) с правильными заголовками. Проблема в том, что я тестирую его на своем Apache localhost, и он не отправляет данные в указанный файл php. Он только объединяет данные с моим заголовком Url как запрос GET.

        let reqObj = new XMLHttpRequest();
        var elem = document.getElementById(msgContan);
        //add event listener for request
        reqObj.addEventListener("progress", function(eve) {
            if (eve.lengthComputable) {
                //show progress on download using view
                jsView.elementShowMover(elem, strPos,endPos,moveMs);
                document.getElementById(msgElemnt).innerText = Math.round(eve.loaded/eve.total * 100) + "% Complete";
            }
        });
        reqObj.addEventListener("load", function(eve) {
            if (reqObj.status >= 200 && reqObj.status < 300) {
                //elem.style.display = "none";
                console.log('Completed');
            }
        });
        reqObj.addEventListener("error", function(eve) {
            document.getElementById(msgElemnt).innerText = "Failed to post data.";
        });
        reqObj.addEventListener("abort", function(eve) {
            document.getElementById(msgElemnt).innerText = "Data post was cancelled.";
        });
        //set timeout @ 30 seconds
        reqObj.timeout = 30000;
        //open network request
        reqObj.open('POST', 'localhost/myprojects/pages/app/web_app/getter.php');
        //set http-headers
        reqObj.setRequestHeader('Content-Type', 'application/json');
        //send the request
        reqObj.send(JSON.stringify(answ.jObj));

Может ли кто-нибудь помочь мне подсказать, почему это могло произойти и как вы проверяете запрос POST на локальном хосте?

1 Ответ

0 голосов
/ 30 мая 2020

@ epascarello поставил правильные диагнозы, чтобы решить мой вопрос. Поэтому я отправляю его.
Связанные данные с моим URL-адресом и постоянный запрос GET отправлен, хотя был запрошен POST, это связано с тем, что я

не отменял отправку формы.

Отмена отправки формы зависит от того, как вызывается объект XmlHttpRequest. В моем случае я вызвал функцию с событием onclick, привязанным к html <button>.

Для кнопки не установлен атрибут типа, что означает, что по умолчанию она отправлена.

Я изменил атрибут кнопки на type='button', что отменило отправку формы.

Моя вторая проблема - невыполнение файла php или выполнение запроса в наборе * 1035 Функция события * load возникла из-за того, что второй параметр свойства XmlHttpRequest .send не задан как относительный путь. Таким образом, мой неправильный путь показал

сетевой запрос

404 Not Found с Request URL:http://localhost/myprojects/pages/localhost/myprojects/pages/app/web_app/getter.php.
. Изменив мой абсолютный путь на относительный путь, POST запрос выполнен.

...