Jquery ajax不在firefox中工作

时间:2015-11-11 09:34:41

标签: javascript jquery ajax

我的代码正在使用chrome,safari,但它不能在firefox中运行。

这是我的代码

<script>
$(document).ready(function () {

    $("#loginform").on('submit',(function(e) {

        e.preventDefault();

        $('#loading').html("Loading....");

        $.ajax({
            url: "login.php",
            type: "POST",         
            data: new FormData(this), 
            contentType:false,     
            cache: false,            
            processData:false, 
            async:false,                    
            success: function(data)  
            {
                $('#loading').hide();
                $("#message").html(data);
            }
        });

        return false;

    }));

});
</script>

任何人都可以解决这个问题吗?我在同一页面中有一个相同的脚本只有url是不同的但它工作正常,但这个脚本不工作。我得到空数据。但是在chrome中,safari工作正常。

我的Html代码:

<form role="form" method="post" id="loginform" action="">
            <div class="form-group">
              <label for="username">Username</label>
              <input type="text" class="form-control" id="username" name="username" placeholder="Enter Username" required>
            </div>
            <div class="form-group">
              <label for="password"> Password</label>
              <input type="password" class="form-control" id="password" name="password" placeholder="Enter password">
            </div>
            <div class="checkbox">
              <label><input type="checkbox" value="" name="user_rememberme" checked>Remember me</label>
            </div>
              <div id="loading"></div>
              <div id="message"></div>
              <button type="submit" name="login" class="btn btn-success pull-right">Login</button>
          </form>

2 个答案:

答案 0 :(得分:3)

永远不要在ajax调用中使用async:false,除非你特别知道你在做什么。问题是async:false冻结浏览器直到ajax调用完成(错误或成功)。将其设置为true或删除它(默认情况下是真的)。​​也实现错误块并检查它是否是来自服务器端的错误

success: function(data)  
{
$('#loading').hide();    
$("#message").html(data);
},error:function(data){
  console.log(data)
}

答案 1 :(得分:0)

试试这个:

<script>
$(document).ready(function () {

    $("#loginform").on('submit',(function(e) {
        dta = $(this).serialize();
        e.preventDefault();

        $('#loading').html("Loading....");

        $.ajax({
            url: "login.php",
            type: "POST",         
            data:dta,                                
            success: function(data)  
            {
                $('#loading').hide();
                $("#message").html(data);
            }
        });

        return false;

    }));

});
</script>