我的脚本使用jQuery 3.3.1请求登录页面,并在服务器上返回错误而不是登录或注销,而Apache / Linux上的PHP是5.6,并且工作所在的本地服务器是同一版本可以。
<form class="js-validate" id="formLogin" name="formLogin" autocomplete="off" accept-charset="UTF-8" onSubmit="return false;">
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-6 col-lg-6 mb-6">
<div class="js-form-message">
<label for="user_email" class="h5 d-block text-uppercase">Email address</label>
<div class="js-focus-state input-group u-form">
<input type="email" autocomplete="false" class="form-control u-form__input" id="user_email" name="user_email" required placeholder="email@example.com" aria-label="email@example.com" data-msg="Please enter a valid email address." data-error-class="u-has-error" data-success-class="u-has-success">
</div>
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-6 col-lg-6 mb-6">
<div class="js-form-message">
<label for="user_password" class="h5 d-block text-uppercase">Password</label>
<div class="js-focus-state input-group u-form">
<input type="password" autocomplete="false" class="form-control u-form__input" id="user_password" name="user_password" required placeholder="********" aria-label="********" data-msg="Your password is invalid, please try again." data-error-class="u-has-error" data-success-class="u-has-success">
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<div id="returnResponse"></div>
</div>
</div>
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-6 col-lg-6 text-left">
<a class="font-size-14 font-weight-bold title-green" href="login/recuperar-senha/">I forgot my password!</a>
</div>
<div class="col-xs-12 col-sm-12 col-md-6 col-lg-6 text-right">
<button id="btnSend" type="submit" class="btn btnp-success btn-sm color-1 material-design transition-3d-hover" data-color="#004740">Sign in</button>
</div>
</div>
</form>
<!-- SCRIPT - LOGIN -->
<script>
$(document).ready(function(){
$("#formLogin").on('submit', function(){
$.ajax({
type:'POST',
url: "login/send-form/",
data: $('#formLogin').serialize(),
beforeSend: function(){
$('#btnSend').attr("disabled","disabled");
$('#formLogin').css("opacity",".5");
},
success: function(data) {
$('#formLogin')[0].reset();
$('#returnResponse').html(data);
$('#formLogin').css("opacity","");
$("#btnSend").removeAttr("disabled");
console.log(data);
}
});
});
});
</script>
在控制台上,它返回错误并且不执行请求,在localhost上,它起作用:
[Deprecation]主线程上的同步XMLHttpRequest是 不推荐使用,因为它对最终用户的有害影响 经验。如需更多帮助,请检查online。
答案 0 :(得分:0)
在阅读所提及的评论链接时,以下提到
”工作人员外部的XMLHttpRequest正在从Web平台中删除,因为这会对最终用户的体验产生不利影响。(这是一个漫长的过程,需要很多年。)开发人员不得通过当前全局对象是Window对象时,async参数为false。强烈建议用户代理警告开发人员工具中的此类用法,并可以尝试在发生“ InvalidAccessError” DOMException时抛出该异常。“
我认为您的ajax请求是如何同步的,默认情况下,该请求应该是异步的
jQuery Ajax,因此请尝试在您的Ajax请求中添加async: true
。