AJAX xmlhttp.send()不起作用

I'm a complete and utter AJAX noob and have been sitting with the same problem for the last 5 hours.

My script code

<script language='javascript'>
function upvote(id ,username)
{   
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
        {
            
        }
    };
    xmlhttp.open("GET", "vote.php?id=" +id+"&username=" +username, true);
    xmlhttp.send();
}
</script>

My onclick link,

<a href='javascript:void(0)' onclick='upvote($id,$username)'></a>

$_GET is used to retrieve parameters sent via the URL of the page. For example

../vote.php?id=3&username=anor

My php file works perfect when i tried that.

I don't think there's anything wrong with the PHP anyway. For some reason however, xmlhttp.send(params) is still not sending the required variables to the vote.php file. I tried post AJAX request but it didn't work either.

</div>

edit them If php file

$id = '1';
$username = 'suman';

echo '<a href="javascript:void(0)" onclick="upvote(\''$id'\',\''$username'\')"></a>';
?>

If this is part of your PHP code

onclick='upvote($id, $username)'

it won't work. It should be

onclick='upvote($id, "$username")'

instead. Let's see the example that you posted: $id=3 and $username=anor. This would result in

onclick='upvote(3, anor)'

As long as there is no Javascript variable with the name anor, this would be equivalent to

onclick='upvote(3, undefined)'

Do you get that?

PS: The upvote function itself seems to be fine