首页 文章

AJAX请求不发送到URL

提问于
浏览
0

我试图向URL发送ajax请求,期望获得json响应,但是,请求似乎没有发送到/ login . 相反,它保留在当前URL上并向其添加formData参数 . 它也没有感知“POST” . 怎么了:

$(document).ready(function() {
  $("#login").click(function() {
    var formData = {username: username, password: password}
    $.ajax({
      type: "POST",
      url: "/login",
      dataType: 'json',
      data: formData,
      success: function (data) {
        var json_x = data;
        alert(json_x['data']);
      }
    });
  });
});

HTML:

<form>
  <input type="text" name="username">Username</input>
  <input type="password" name="password">Password</input>
  <button type="button" id="login">Login</button>
</form>

4 回答

  • 1

    尝试:

    $(document).ready(function() {
      $("#login").click(function() {
        // you forgot to get value of username and password
        var formData = {username: $('#username').val(), password: $('#password').val()};
        $.ajax({
          type: "POST",
          url: "/login",
          dataType: 'json',
          data: formData,
          success: function (data) {
            console.log(data);
          }
        });
      });
    }); 
    
    <form>
      <input type="text" name="username" id="username">Username</input>
      <input type="password" name="password" id="password">Password</input>
      <button type="button" id="login">Login</button>
    </form>
    
  • 1

    UPDATE3:查看formData的新声明 .

    var formData = {
        username: $("input[name='username']").val(),
        password: $("input[name='password']").val()
    };
    
  • 0

    使用此代码

    alert(json_x.data);

    代替

    alert(json_x['data']);

    也改变了这一行

    var formData = {username: username, password: password}

    var formData = $(this).parent().serialize();

  • 0

    正确的答案是使用$(“button”)而不是$(“#login”) .

    我已经解决了 .

相关问题