繁体   English   中英

WordPress自定义Ajax登录成功返回整个页面HTML

[英]Wordpress Custom Ajax Login returning entire page HTML on success

我已经按照本教程创建了自定义ajax登录名,但是遇到了问题。 我正在使用此jquery代码发送ajax请求:

function ajaxLogin(form) {
    $.ajax({
        type: 'post',
        dataType: 'html',
        url: loginScript.ajaxurl,
        data: "action=cb_register_login_submit&" + $(form).serialize(),
        global: false,
        success: function( msg ){
            //location.reload( true ); // This could be nicer
            handleLoginReturn(msg);
        },
        error: function(er) {
            handleErrorReturn(er);
        }
    });
}

function handleLoginReturn(msg) {
    console.log(msg);
}

以及以下PHP函数来处理登录过程:

<?php

function cb_register_login_submit() {

    $creds = array();
    $creds['user_login'] = $_POST['username'];
    $creds['user_password'] = $_POST['pwd'];

    if ( isset( $_POST['remember'] ) ) {
        $creds['remember'] = true;
    }

    $user = wp_signon( $creds, false );

    if ( is_wp_error( $user ) ) {
        echo 'error';
    } else {
        echo 'success';
    }
    die(0);
}

?>

因此,问题在于,当我输入错误的登录信息时,实际上确实会通过ajax成功回调返回字符串“错误”,但是当我输入正确的日志信息时,便会得到整个页面的html(我认为是通过成功回调而不是字符串“ success”返回wordpress仪表板代码)。 实际上,字符串“ success”似乎未在成功回调中的任何地方返回。

知道这里有什么问题吗? 我假设wp_signon函数可能会在我不知道的成功情况下返回数据。 任何帮助将非常感激!

我找到了解决方案:

我使用的是“登录注销重定向”插件,该插件似乎在成功进行ajax调用后就发送了重定向页面html。 我停用了插件,一切正常!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM