我是新手。我发现我的代码仅在有管理员登录用户时才有效。我该如何处理它,它也可以在没有任何用户登录和普通用户登录的情况下工作。
这是我的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="">
有人知道我的情况吗?
提前致谢...
我在 firebug 中检查它,它得到 302 Found
最佳答案
该问题似乎与另一个插件或功能冲突,该插件或功能试图阻止未登录或非管理员用户访问 wp-admin 区域,因此它从 wp-admin/admin-ajax.php 重定向并给您 302 响应.
尝试一一停用每个插件并检查问题。
关于php - 前端的 wordpress ajax 已找到 302,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30700200/