javascript - XMLHttpRequest() 在函数中返回响应

标签 javascript php ajax xmlhttprequest

我有一个函数 isOnline(),如下所示:

function isOnline() {
    var request=new XMLHttpRequest(); 

    request.onreadystatechange=function() {
        if(request.readyState==4) {
            if(request.responseText=="online")
                return true;    
        }    
    }
    request.open("GET","onlinecheck.php?user=user",false);
    request.send();

    return false;
}

如果我运行 document.write(isOnline());对于测试,我总是得到 false,(如果我不写 return false; ,则未定义,我得到未定义。

如何在readyState为4之前“等待”并在之后返回true?

最佳答案

您需要关注以下几件事:

<小时/>

如果您决定同步执行:

function isOnline() {
    var request=new XMLHttpRequest(); 

    request.open("GET","www.google.com/",false);
    request.send();

    /* check the readyState, you can also check for status code */
    if (request.readyState === 4)
        // put other conditions here if you need to    
        return true;
    else
        return false;
}

// It returns true

关于javascript - XMLHttpRequest() 在函数中返回响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26901972/

相关文章:

javascript - 辅助方法、ActionView 和 ActionController

javascript - 为什么 Javascript 的 OR 返回 true/false 以外的值?

php - 如何在 mysql 中确定 OR 条件的优先级

jquery - MVC Razor 部分 View 中 webGrid.GetHtml 的分页

php - 在php模板中显示.txt文件内容?

javascript - 这个错误有什么建议吗?未捕获的类型错误 : $. ajax 不是函数

javascript - 如何拆分和合并 RxJS 发出的数组值?

javascript - 菜单未显示 onclick 功能无法正常工作

php - undefined offset PHP,不确定它的作用

php - 替换 mySQL REPLACE 查询中的正斜杠