我想知道如何在发送后验证xmlHttp请求的状态。我该怎么做呢?感谢。
function sendRequest(){
//get refresh access token
var accessToken = 'xxx';
//get user_id
var userid = document.getElementById('userid').value;
//get request_token
var requestToken = document.getElementById('requestToken').value;
//insert database
var xmlHttp = new XMLHttpRequest();
var url="database.php";
var parameters = "accessToken=" + accessToken + "&userid=" + userid + "&requestToken=" + requestToken ;
xmlHttp.open("POST", url, true);
//send request
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Content-length", parameters.length);
xmlHttp.setRequestHeader("Connection", "close");
xmlHttp.send(parameters);
//check status
if(xmlHttp.status == Ok){
alert('success!');
}else {
alert('error');
}
}
答案 0 :(得分:1)
我认为这就是你正在寻找的东西
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("demo").innerHTML =
this.responseText;
}
};
xhttp.open("GET", "http://your-url.com/your-page.php", true);
xhttp.send();
答案 1 :(得分:1)
每次onreadystatechange
更改时都会触发readyState
事件。
在服务器请求期间,readyState从0更改为4:
0:请求未初始化
1:建立服务器连接 2:收到请求
3:处理请求
4:请求已完成且响应已准备好
因此,在您的代码中,您可以添加侦听器以检查onreadystatechange
事件并检查其中的状态,如下所示 -
function sendRequest(){
//get refresh access token
var accessToken = 'xxx';
//get user_id
var userid = document.getElementById('userid').value;
//get request_token
var requestToken = document.getElementById('requestToken').value;
//insert database
var xmlHttp = new XMLHttpRequest();
var url="database.php";
var parameters = "accessToken=" + accessToken + "&userid=" + userid + "&requestToken=" + requestToken ;
//Here is the onreadystatechange event listener.
xmlHttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
alert('success');
} else if(this.readyState == 4 && this.status != 200) {
alert('error');
}
};
xmlHttp.open("POST", url, true);
//send request
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Content-length", parameters.length);
xmlHttp.setRequestHeader("Connection", "close");
xmlHttp.send(parameters);
//check status
if(xmlHttp.status == Ok){
alert('success!');
}else {
alert('error');
}
}
答案 2 :(得分:1)
<!DOCTYPE html>
<html>
<body>
<h2>Using the XMLHttpRequest object</h2>
<button type="button" onclick="loadXMLDoc()">Change Content</button>
<p id="test"></p>
<script>
function sendRequest(){
//get refresh access token
var accessToken = 'xxx';
//get user_id
var userid = document.getElementById('userid').value;
//get request_token
var requestToken = document.getElementById('requestToken').value;
var xmlHttp = new XMLHttpRequest();
var xhttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("test").innerHTML =
this.responseText;
}
};
//insert database
var url="database.php";
var parameters = "accessToken=" + accessToken + "&userid=" + userid + "&requestToken=" + requestToken ;
xmlHttp.open("POST", url, true);
//send request
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Content-length", parameters.length);
xmlHttp.setRequestHeader("Connection", "close");
xmlHttp.send(parameters);
}
</script>
</body>
</html>