当我输入错误的细节并运行它。它弹出错误消息,但如果我然后输入正确的详细信息,然后单击再次运行它。登录按钮变为“正在连接...”,但是没有其他任何事情发生
$(document).ready(function() {
var width = ( $(".main").width() - 5);
if (width < 300) {
$(".logo-img").css({"width":width});
};
$("#error").hide();
$(function() {
$('#login').on('click', function(e){
e.preventDefault();
var token = $('#token').val();
var username = $('#username').val();
var password = $('#password').val();
var remember = $('#remember:checked').val();
$.ajax({
url: 'core/functions/ajaxLogin.php',
method: 'POST',
data: { 'username' : username,
'password' : password,
'remember' : remember,
'token' : token },
dataType: 'html',
cache: false,
beforeSend: function() { $('#login').val('Connecting...') },
success: function( data ) {
if (data == 'success') {
setTimeout( "window.location.href='backorderbook';", 500 );
} else if( data == 'userorpass' ) {
$('#error').fadeIn();
$('#error_message')
.html('username or password were entered incorrectly');
$('#error').delay(3500).fadeOut();
$('#login').val('Sign In');
};
}
});
});
});
});
答案 0 :(得分:1)
一次工作的原因。
当您的ajax被解雇时,首先要做的是显示连接..然后当您收到data
的回复时,您的声明会说
if data == success //redirects
elseif data == userpass //show you have invalid username/password and clear html
那么,如果您的数据不是succes / userpass
,该怎么办?它只会运行你的ajax beforeSend()
而不会删除你运行一次的连接。
我建议您的数据应该是一个对象,并检查其上是否有错误消息,简而言之,请将其放在后端,只是jquery显示该消息
答案 1 :(得分:0)
加载登录页面并使用Ajax发送时会生成令牌。但我的PHP令牌系统不喜欢反复发送相同的令牌并阻止请求。
答案 2 :(得分:-2)
使用Fiddler运行你的函数..和/或将错误参数添加到你的ajax ...你的网络请求的可能性并不大。