我试图用Wordpress创建一个简单的Ajax登录系统。不幸的是,每次启动“wp\\u signon”功能时,我的系统都会出现故障,而我所掌握的唯一信息是:
POST myurl/wp-admin/admin-ajax.php - 302 Found
GET myurl/?login = failed - 200 Found
因此,无论我是否尝试使用良好的信息登录,我的JS脚本都会出现在Ajax函数的“错误部分”。
谁能告诉我我做错了什么吗?我们将不胜感激!
非常感谢!
JS公司:
jQuery(document).on(\'submit\', loginForm, function(event) {
event.preventDefault();
var usernameVal = jQuery(\'.modal-login .login-form #user_login\').val();
var passwordVal = jQuery(\'.modal-login .login-form #user_pass\').val();
var remembermeField = jQuery(\'.modal-login .login-form #rememberme\');
var securityVal = jQuery(\'.modal-login .login-form #security\').val();
if ( remembermeField.prop(\'checked\') ) {
var remembermeVal = \'true\';
} else {
var remembermeVal = \'false\';
}
jQuery.ajax({
type : "post",
url : data_front_end_users_management.ajaxurl,
dataType: \'json\',
data: {
action: \'AuthUserAjax\',
username: usernameVal,
password: passwordVal,
rememberme: remembermeVal,
security: securityVal
},
success: function(data) {
if ( data[\'answer\'] === 1 ) {
modalAlert( msgRow, msgAlert, msgContent, false, \'alert-success\', \'alert-danger\', data[\'message\'] );
} else {
modalAlert( msgRow, msgAlert, msgContent, false, \'alert-danger\', \'alert-success\', data[\'message\'] );
}
//END success
},
error: function () {
modalAlert( msgRow, msgAlert, msgContent, false, \'alert-danger\', \'alert-success\', defaultError );
}
//END ajax
});
//END jQuery(document).on(\'submit\', loginForm, function(event)
});
措施:
function AuthUserAjax() {
$LoginController = new FELoginController();
$value = array();
$value[\'answer\'] = 0;
$value[\'message\'] = \'\';
$username = trim($_POST[\'username\']);
$password = trim($_POST[\'password\']);
$rememberme = $_POST[\'rememberme\'];
$security = $_POST[\'security\'];
if ( $LoginController->checkAuthInfosFilled( $username, $password ) ) {
$user = $LoginController->UserAuth( $username, $password, $rememberme );
if ( $user ) {
if ( is_wp_error( $user ) ) {
$value[\'answer\'] = 0;
$value[\'message\'] = $user->get_error_message();
} else {
$value[\'answer\'] = 1;
$value[\'message\'] = \'Success.\';
}
//END if ( $user )
} else {
$value[\'answer\'] = 0;
$value[\'message\'] = \'Wrong username or password.\';
}
} else {
$value[\'answer\'] = 0;
$value[\'message\'] = \'Please, enter your username and your password.\';
}
$data = json_encode($value);
die( $data );
//END AuthUserAjax
}
add_action( \'wp_ajax_AuthUserAjax\',\'AuthUserAjax\' );
add_action( \'wp_ajax_nopriv_AuthUserAjax\',\'AuthUserAjax\' );
控制器:
public function UserAuth( $username, $password, $rememberme ) {
if ( check_ajax_referer( \'ajax-login-nonce\', \'security\' ) ) {
$creds = array();
$creds[\'user_login\'] = $username;
$creds[\'user_password\'] = $password;
if ( $rememberme == \'true\' || $rememberme == true ) {
$creds[\'remember\'] = true;
} else {
$creds[\'remember\'] = false;
}
$user = wp_signon( $creds, false );
return $user;
} else {
return false;
}
//END UserAuth
}