繁体   English   中英

当我单击它一次时,此javascript函数工作正常,但当我单击两次时不起作用

[英]This javascript function works fine when i click it one, but does not work when i click it twice

我正在做一个小项目,其中包括将用户添加为朋友。 因此,我创建了一个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文件无法执行任何操作

您正在分配,而不是进行比较

if(serverResponse = 'FriendHasBeenDeleted') 
if(serverResponse = 'Added') { 

需要是

if(serverResponse === 'FriendHasBeenDeleted') 
if(serverResponse === 'Added') { 

现在另一个问题是GET请求缓存。 因此,当您第一次向服务器发送请求时,它会返回一个值。 当您再次请求它时,它只会重用该值。 由于您实际上是在更新数据库,因此最好使用POST请求。 发布请求不缓存。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM