从XMLHTTPRequest函数返回结果

时间:2017-05-03 09:16:43

标签: javascript ajax

我正在尝试使用XMLHttpRequest并使基本代码正常工作,但是无法使用下面的代码获取函数来返回一个布尔变量来说明它是否有效:

var xhr = new XMLHttpRequest();
var success = false;

xhr.open('HEAD', sourceurl, true);
xhr.send();
xhr.onreadystatechange=function(){
    if (xhr.readyState === 4){   //if complete
        if(xhr.status === 200){  //check if "OK" (200)
            //success
            console.log('success');
            return true;

        } else {
            // fail
            console.log('fail' );
            return false;

        }
    } 
};

控制台日志显示正确的事情但是当将此代码包装在函数中时,它根本不会给出是否有效的任何指示。

任何帮助将不胜感激!

编辑:不重复,因为在我的示例中不能使用jQuery,现有的解决方案不起作用。

1 个答案:

答案 0 :(得分:0)

onreadystatechange函数是异步的,所以它不会返回任何东西。如果要将其包装在外部函数中,您希望查看使用回调函数,这基本上意味着调用将处理HTTP请求结果的函数。