Почему форма не отправляется, когда данные введены верно (javascript, ajax)?

Есть форма входа:

{% block content %}
<form method="POST" class="login-form" id="login-form">
  {{ login_form.hidden_tag() }}
  <div class="form-group">
    {{ login_form.name.label }}
    {{ login_form.name(class="form-control", id="login_form_name", placeholder="Name") }}
  </div>
  <div class="form-group">
    {{ login_form.password.label }}
    {{ login_form.password(class="form-control", id="login_form_password", placeholder="Password") }}
    <p id="incorrect-data-error" class="error-message" style="margin-top: 30px;"></p>
  </div>
  <div class="form-group">
    {{ login_form.recaptcha.label }}
    {{ login_form.recaptcha(class="g-recaptcha") }}
    <p id="recaptcha-error" class="error-message" style="margin-top: 30px;"></p>
  </div>
  <div class="form-group">
    {{ login_form.submit(class="btn btn-primary", id="login-form-submit") }}
    <p id="session-exists-error" class="error-message" style="margin-top: 30px;"></p>
  </div>
</form>
<p class="register_account_message">Don't have an account? <a href="/signup">Signup here</a></p>
{% endblock %}

Есть js-скрипт, который связан с этой формой. Он, с помощью ajax, отправляет данные с формы на сервер после нажатия кнопки Log In:

$(document).ready(function() {

  $("#login-form").on("submit", function(event) {
    event.preventDefault();
    var formData = $(this).serialize();

    $.ajax({
      type: "POST",
      url: "/check_login_user_credentials",
      data: formData,
      success: function(response) {
        if (response.response === 'Incorrect data') {
          $("#incorrect-data-error").text('Incorrect username or password');
        } else if (response.response === 'Session already exists') {
          $("#session-exists-error").text('This account is already in use. Please try again later.');
        } else if (response.response === 'Allow') {
          $("#incorrect-data-error").text('');
          $("#login-form")[0].submit();
        }
      }
    });
  });
});

Маршрут, на который отправляются данные:

@app1.route('/check_login_user_credentials', methods=['GET', 'POST'])
def check_login_user_credentials():
    hashed_password = sha256(request.form.get('password').encode('utf-8')).hexdigest()
    user = User.query.filter(User.name==request.form.get('name'), User.password==hashed_password).first()
    if user:
        if user.active_session:
            return jsonify({ 'response': 'Session already exists' })
        else:
            return jsonify({ 'response': 'Allow' })
        
    return jsonify({ 'response': 'Incorrect data' })

Дело в том, что когда данные введены неверно и/или вход в аккаунт был произведен ранее, то все работает как надо (форма не отправляется и появляется соответствующие сообщения). Но, когда данные верны и ранне в аккаунт никто не входил, то сообщений нет (как и надо), а форма все равно НЕ отправляется, хотя должна бы. Я просто нажимаю кнопку и ничего не происходит, хотя данные с помощью ajax отправляются.

Если что, использую вот эту версию jQuery:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

Если что, ChatGPT не справляется с этим) Буду рад любой помощи и советам.


Ответы (0 шт):