Страница перезагружается при завершении запроса AJAX с использованием NodeJS - PullRequest
1 голос
/ 27 января 2020

Я пытаюсь использовать запрос get для запуска сценария python и возврата результата, используя AJAX, Nodejs (используя express) и Python -Shell (который запускает на стороне сервера * 1023) * скрипт). Я хочу, чтобы этот результат был возвращен в div на моей странице.

Код возвращает результат из скрипта python обратно на веб-страницу (он мигает на секунду в div), но затем почти сразу же страница перезагружается.

Моя клиентская сторона JS Функция (которая запускается через событие нажатия кнопки)

function getResult() {
    xmlhttp = new XMLHttpRequest()
    ResultCoords = encodeURI('oLat=' + document.getElementById('originLat').innerHTML + '&oLng=' + document.getElementById('originLng').innerHTML + '&dLat=' + document.getElementById('destLat').innerHTML + '&dLng=' + document.getElementById('destLng').innerHTML);
    xmlhttp.open("GET", "http://localhost:3000/run?" + ResultCoords, false);
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            string = xmlhttp.responseText;
            document.getElementById('result').innerHTML = string
        }
    }
    xmlhttp.send(ResultCoords)
}

Мой серверный скрипт

router.get('/run?*', (req, res) => {
    let options = {
        mode: 'text',
        pythonPath: 'my python path',
        pythonOptions: ['-u'],
        scriptPath: 'my script path',
        args: [req.query.oLat, req.query.oLng, req.query.dLat, req.query.dLng]
    };
    PythonShell.run('pythonScript.py', options, function (err, results) {
        if (err) throw err;
        console.log(results);
        const data = results;
        return res.send(data)
    });
});

Я все еще очень начинающий с express, AJAX et c. так что я открыт для любых предложений по улучшению кода, если это не правильный способ делать подобные вещи и т. д. c.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...