我正在开发一个小项目,其中包括将用户添加为朋友。所以我创建了一个ajax程序来处理显示用户友谊的状态(即他是否是其他用户的朋友),如果你不是朋友,你可以立即添加他。所以我做了一个小按钮来完成我之前提到的功能。只要我点击一次按钮就可以正常工作,但是当我点击它两次时它就不起作用了。你能帮助我吗?
function addFriend(user) {
userName = user.getAttribute('data-username') ;
xmlHttp.open("GET",'addFriend.php?user=' + userName,true) ;
xmlHttp.send() ;
xmlHttp.onreadystatechange = function() {
if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {
serverResponse = xmlHttp.responseText ;
alert(serverResponse) ;
if(serverResponse = 'FriendHasBeenDeleted') {
user.innerHTML = 'Not your amigo' ;
user.className = 'FriendsONno' ;
}
if(serverResponse = 'Added') {
user.innerHTML = 'Your Amigo' ;
user.className = 'FriendsONyes' ;
}
}
else {
}
}
}
php文件工作正常,并回应两件事。一个是'FriendHasBeenDeleted',另一个是'已添加' 但是,当单击按钮两次时,javascript文件不会执行任何操作
答案 0 :(得分:2)
您正在分配,而不是比较
if(serverResponse = 'FriendHasBeenDeleted')
if(serverResponse = 'Added') {
需要
if(serverResponse === 'FriendHasBeenDeleted')
if(serverResponse === 'Added') {
现在另一个问题是GET请求缓存。因此,当您第一次返回值时向服务器发送请求时。当您再次请求它时,它只是重用该值。由于您实际上正在更新数据库,因此最好使用POST请求。发布请求不会缓存。