【问题标题】:XMLHttpRequest() returning response in a function [duplicate]XMLHttpRequest()在函数中返回响应[重复]
【发布时间】:2023-04-02 17:58:01
【问题描述】:

我有一个函数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()); 进行测试,我总是会得到错误,(如果我不写return false;,我会得到未定义。

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

【问题讨论】:

    标签: javascript php ajax xmlhttprequest


    【解决方案1】:

    你需要专注于几件事:


    如果您决定同步进行:

    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
    

    【讨论】:

      猜你喜欢
      • 2012-03-23
      • 2016-12-14
      • 1970-01-01
      • 1970-01-01
      • 2018-06-09
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      相关资源
      最近更新 更多