我的代码正在使用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>
答案 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>