Jquery $.ajax()发送GET和POST请求,但未发送数据

Jquery $.ajax()发送GET和POST请求,但未发送数据,jquery,ajax,Jquery,Ajax,我试图发出一个ajax请求来检查数据库中是否已经存在用户名,但我从中得到一个奇怪的行为。这是我的剧本: $("#username").blur(function() { $.ajax({ type: "POST", url: "check_username.php", data: { username: $("#username").val()

我试图发出一个ajax请求来检查数据库中是否已经存在用户名,但我从中得到一个奇怪的行为。这是我的剧本:

$("#username").blur(function()
    {
        $.ajax({
            type: "POST",
            url: "check_username.php",
            data:
            {
                username: $("#username").val()
            },
            success: function()
            {
                $("#username_taken").load("check_username.php").show();
            },   
        });
        return false;
    });
还有我的php:

<?php

    if (($connection = mysql_connect("database", "user", "pass")) === false)
    {
        die('Could not connect: ' . mysql_error());
    }

    if ((mysql_select_db("database", $connection)) === false)
    {
        die ("Could not select database : " . mysql_error());
    }

    if ($_SERVER["REQUEST_METHOD"] == "POST")
    {
        $username = mysql_real_escape_string($_POST["username"]);
        $check = mysql_query("SELECT username FROM users WHERE username = '$username'");
        $check_num_rows = mysql_num_rows($check);
        if ($check_num_rows == 1)
        {
            echo "Username already exists.";
            return false;
        }
    }
?>
这是在请求的数据中传递的,所以我不知道为什么它不能识别它。我真的不明白这有什么问题,因为我在这个脚本中有另一个ajax,看起来很像那个,它工作得非常完美

有什么想法吗?? 谢谢大家!

load()
是以下各项的快捷方式:

$.ajax({
    type: 'GET',
   ....etc
});
因此,您首先发送一个POST请求,在该POST请求的成功处理程序中使用
load()
,wich执行完全相同的操作,但是使用GET请求,因此您要调用同一个PHP文件两次,这就是为什么您同时看到一个POST和一个GET请求

以下是您可能应该如何做:

$("#username").on('blur', function() {
    $.ajax({
        type: "POST",
        url : "check_username.php",
        data: { username: this.value }
    }).done(function(data) {
           $("#username_taken").html(data).show();
    });
});

你应该考虑使用PDO,因为旧的<代码> MySqL**/Case>函数被贬低而不安全。

哦……我不知道关于负载……我真的不理解“完成”(函数(数据)”的工作……我想显示的是一个称用户名的消息,但我不知道如何“连接”。我的php脚本可以实现这一点…函数(数据)的内部内容是什么?@MF-现在你知道了,load()是$.ajax的快捷方式!完成的函数与代码中的success函数相同,并且数据是php文件输出的任何内容,在你的例子中,
echo“Username已经存在。”;
是返回到完成的()函数。哦,这就是你从php中得到东西的方法!!这太完美了!!工作起来很有魅力!!!谢谢!!
$("#username").on('blur', function() {
    $.ajax({
        type: "POST",
        url : "check_username.php",
        data: { username: this.value }
    }).done(function(data) {
           $("#username_taken").html(data).show();
    });
});