Я новичок в 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")