jQuery's$.post只返回一个空白数据

jQuery's $.post returns only a blank data

本文关键字:一个 数据 空白 返回 post jQuery      更新时间:2023-09-26

我正试图使用jQuery的$.post从数据库中检查用户名的可用性。我不知道是路径错误还是php脚本错误,但它一直返回一个数据,可能是空白或null。为什么?

JS文件:

$(document).ready(function(){

$("#signup_username").bind("keyup blur",function(){
    $("#loading_img_username").show();
    var prompt_username = $("#signup_username").val();
    if(prompt_username != ''){
        $.post('php/check.php', {username: prompt_username} , function(data){
            $("#signup_username_status").html(data);
            $("#loading_img_username").hide();
        }).error(function(){
            $("#loading_img_username").hide();
            $("#signup_username_status").html("<span style='color:#cc2000;'><i class='glyphicon glyphicon-remove'></i> Cannot verify username availability.</span>");
        });
    } else{
        $("#signup_username_status").html("<span style='color:gold;'><i class='glyphicon glyphicon-info-sign'></i> Provide your username.</span>");
        $("#loading_img_username").hide();
    }

    });
});

PHP文件:

<?php
 $user = $_POST['username'];
  echo $user;

我知道,无论您在输入字段中提示什么:

#signup_username
,都将作为数据输出,并在$.post
的回调函数中传递

建议1:

jQuery他的post函数使用数据类型来接收信息,此时您使用的是数据类型"text"。我应该使用XML或JSON,因为这样读起来更清楚。

$.post('url', {username: prompt_username}, function( data ) {
  $("#signup_username_status").html(data.username);
  $("#loading_img_username").hide();
}, 'JSON');

如果你这样做的话,你需要用PHP对数据进行编码:

$user = $_POST['username'];
die(json_encode(array('username'=>$user)));

建议2:

你的jQuery帖子请求不起作用吗?用.error函数调试它,如果你知道如何使用它,它会很方便!下面是一个如何消除错误的例子:

$.post('url', {username: prompt_username}, function( data ) {
  $("#signup_username_status").html(data.username);
  $("#loading_img_username").hide();
}, 'JSON').error(function( a,b,c ) {
  console.log(a,b,c);
});
相关文章: