AJAX запрос не отображается html страница - PullRequest
0 голосов
/ 13 апреля 2020

Я новичок в JavaScript, и я впервые использую AJAX. У меня есть две HTML страницы, которые простираются от макета. html.

Первое, что я пытаюсь сделать, это go до route "/" , который отображает index. html.

После этого, если пользователь вводит отображаемое имя при щелчке, я вызываю запрос на "/ sign" route . "/ Sign" обрабатывает, чтобы увидеть, существует ли введенное имя или нет, и соответственно возвращает ответ.

Если я получу успешный ответ от "/ sign", то я хотел бы отобразить новую страницу HTML, т.е. "main. html" . Для этого я создал новый запрос для route "/ user /" . В терминале я вижу, что мой запрос к «/ user /» становится успешным, но «main. html» - это , а не . Что мне делать?

Заранее спасибо.

var okay_button = document.querySelector('#name');
var name = document.querySelector(".name");
// Now if button is clicked
                okay_button.onclick = () => {
                    okay_button.disabled = true;
                // Initialise a new request
                const request = new XMLHttpRequest();
                request.open('POST', '/sign');

                request.onload = () => {

                    // Extract JSON data from request
                    const data = JSON.parse(request.responseText);

                    if (data.success){
                        localStorage.setItem("name", name.value);

                        const request = new XMLHttpRequest();
                        request.open('GET', `/user/${name.value}`);


                         // Send request
                        request.send(name.value);
                        return false; 
                    }
                    else{
                        alert("Please choose another display name")
                    }
                }

                // Data to send with request
                const data = new FormData();
                data.append('name', name.value);

                // Send request
                request.send(data);
                return false; 
            }

Код сервера;

display_name = []

@app.route("/")
def index():
    return render_template("index.html")

@app.route("/sign", methods=["POST"])
def sign():

    name = request.form.get("name")

    if name not in display_name:
        display_name.append(name)
        print(*display_name, sep='\n')
        return jsonify({"success":True} )

    else:
        print(*display_name, sep='\n')
        return jsonify({"success":False})    

@app.route("/user/<name>", methods=["GET", "POST"])
def main(name):
    return render_template("main.html")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...