wordpress ajax为前端得到302找到

时间:2015-06-08 01:39:16

标签: php jquery ajax wordpress firefox

我是新手。我发现我的代码仅在有管理员登录用户时有效。如何在没有任何用户登录和普通用户登录的情况下处理它。

这是我的js脚本:

jQuery('#username').blur(function() {

jQuery('.username-massage').after('<div class="alert alert-danger usercheck-w" style="color:green;">Checking...</div>');
jQuery.ajax(
{
    url: ajax_url,
    type: "POST",
    dataType: "json",
    data: {
        action: 'checkUsernameExistentVal',
        username: jQuery(this).val(),
    },
    async: false,
    success: function (data)
    {
        alert(data + ' | '+ data.validation);
        jQuery('.usercheck-w').remove();
        if (data.validation != 'true'){
            jQuery('.username-massage').html('<div class="alert alert-danger usercheck-c" style="color:red;">' + jQuery('#username').attr('data-value') + '</div>');
            jQuery("#username").val('');
        }else{
            jQuery('.usercheck-c').remove();
        }              

    },
});

});

这是我的自定义插件中的functions.php。

add_action('wp_ajax_checkUsernameExistentVal', 'checkUsernameExistentVal');
add_action('wp_ajax_nopriv_checkUsernameExistentVal', 'checkUsernameExistentVal');
function checkUsernameExistentVal(){
    $username = $_POST['username']; 
    $val = checkCOntactUsernameExist($username);
    $wp_users = get_users();
    $c_user = '';
    if ($val){
        $usernname_val= 'false';
    }else{
        foreach ($wp_users as $wp_user) {
            if($wp_user->user_login == $username){
                $c_user = 'true';
            }
        }
        if($c_user == 'true'){
            $usernname_val = 'false';
        }else{
            $usernname_val = 'true';
        }
    }

    echo json_encode(array("validation" => $usernname_val));
    wp_die();

}

我的HTML代码是<input type="text" name="username" id="username" value="">

有没有人对我的案子有所了解?

提前感谢...

我在萤火虫中检查它,它得到了302 Found

2 个答案:

答案 0 :(得分:0)

该问题似乎与另一个试图阻止非登录或非管理员用户访问wp-admin区域的插件或函数冲突,因此它从wp-admin / admin-ajax.php重定向并为您提供302响应

尝试逐个停用每个插件并检查问题。

答案 1 :(得分:0)

我将此代码放在函数下面,它可以工作......

if(isset($_REQUEST['action']) && $_REQUEST['action']=='ajaxFunctionMethod'){
        do_action( 'wp_ajax_' . $_REQUEST['action'] );
        do_action( 'wp_ajax_nopriv_' . $_REQUEST['action'] );
}