XMLHttpRequest返回未定义的Javascript方法

时间:2018-09-15 18:48:16

标签: javascript

我有以下方法应返回true或false:

theMethod() {
    const httpRequest = new XMLHttpRequest();
    httpRequest.open("GET", 'http://someurl.com', true);
    httpRequest.send();
    httpRequest.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        return true;
    } else {
        return false;
    }
    };
}

在两种情况下都返回“ undefined”

我该如何解决?

1 个答案:

答案 0 :(得分:1)

thisMethod将始终返回undefined,因为其中没有return语句。它所做的只是发出一个Ajax请求,该请求当然是异步的-它只会在返回{em> {em1} {em}之后完成。 (或者没有,视情况而定。)

您在该Ajax调用上附加了一个回调函数-通常,为了能够对结果执行任何操作,实际上是必需的。 那个函数是返回thisMethodtrue的函数,以指示Ajax是否成功。但是false本身不返回任何内容。

请注意,仅返回一个值的回调实际上不会产生任何可观察到的效果-因为您对返回值不做任何事情。通常,您不需要这样的回调,您只需对响应进行(通常将其呈现在页面上的某个位置,或将其记录到控制台)。