react.js 中的 XMLHttpRequest ontimeout 问题
XMLHttpRequest ontimeout problem in react.js
在我的 react.js 项目 Profile
class 中,我有一个名为 getData
的函数,如下所示:
getData()
{
console.log("inside get data");
var request = new XMLHttpRequest();
request.timeout=1000;
request.ontimeout=function () {
console.log("on timeout");
};
request.onreadystatechange = function() {
if (this.readyState === 4 && this.status === 200) {
console.log(this.responseText);
}
};
request.open('GET', 'http://localhost:8080/user/'.concat(this.state.userID));
request.send();
}
我也试过这个:
request.setTimeout(function () {
console.log("on timeout");
that.props.history.push("/bad_request/".concat(this.status));
},1000);
但它给了我错误说 TypeError: request.setTimeout is not a function
我也绑定了方法:
this.getData = this.getData.bind(this);
我从 componentWillMount
调用它。
这会在控制台中记录一些内容。但永远不会超时。
问题是什么?如何解决这个问题?
switch (xmlhttp.readyState) {
case 0 : // UNINITIALIZED
case 1 : // LOADING
case 2 : // LOADED
case 3 : // INTERACTIVE
break;
case 4 : // COMPLETED
doSomething()
break;
default: // catch error here
}
我正在使用它来检查它是否处于状态,最后我可以检查服务器是否超时,因为默认情况下会给我不同类型的错误。
在我的 react.js 项目 Profile
class 中,我有一个名为 getData
的函数,如下所示:
getData()
{
console.log("inside get data");
var request = new XMLHttpRequest();
request.timeout=1000;
request.ontimeout=function () {
console.log("on timeout");
};
request.onreadystatechange = function() {
if (this.readyState === 4 && this.status === 200) {
console.log(this.responseText);
}
};
request.open('GET', 'http://localhost:8080/user/'.concat(this.state.userID));
request.send();
}
我也试过这个:
request.setTimeout(function () {
console.log("on timeout");
that.props.history.push("/bad_request/".concat(this.status));
},1000);
但它给了我错误说 TypeError: request.setTimeout is not a function
我也绑定了方法:
this.getData = this.getData.bind(this);
我从 componentWillMount
调用它。
这会在控制台中记录一些内容。但永远不会超时。
问题是什么?如何解决这个问题?
switch (xmlhttp.readyState) {
case 0 : // UNINITIALIZED
case 1 : // LOADING
case 2 : // LOADED
case 3 : // INTERACTIVE
break;
case 4 : // COMPLETED
doSomething()
break;
default: // catch error here
}
我正在使用它来检查它是否处于状态,最后我可以检查服务器是否超时,因为默认情况下会给我不同类型的错误。