主要的方法和属性:
方法 | 描述 |
void abort() | 停止当前请求 |
void open(string method, string url, boolean asynch, string username, string password) | 前两个参数必输,后三个参数可选。 method:GET、POST、PUT url:可以是相对URL或绝对URL asynch:表示是异步还是同步,默认值为true,表示异步;false表示处理会等待服务器返回相应 username: password: |
void send(content) | 若请求是异步的,这个方法立即返回,否则会等待直到接受到响应。参数可以是DOM对象的实例、输入流、或字符串。 |
void setRequestHeader(string header, string value) | 这个方法必须在调用open()之后才能调用 |
string getAllResponseHeaders() | 以字符串的形式返回HTTP响应的所有头 |
string getResponseHeader(string header) | 根据响应头名,获取响应头值 |
属性 | 描述 |
onreadystatechange | 每个状态改变时都会触发这个事件处理器,通常会调用一个JavaScript函数 |
readyState | 请求的状态。0=未初始化,1=正在加载,2=已加载,3=交互中,4=完成 |
responseText | 服务器的响应,表示一个字符串。 |
responseXML | 服务器的响应,表示一个DOM对象 |
status | 服务器响应的HTTP状态码(200对应OK,404对应Not Found,等等) |
statusText | 服务器响应的HTTP状态码的相应文本(OK,Not Found,等等) |
示例代码如下:
<script type="text/javascript">
var xmlHttp;
function getUrl(){
var url = "";
return url;
}
function getQueryString(){
var queryString = "";
return queryString;
}
function createXMLHttpRequest(){
if (window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} else if (window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}
}
function doRequestUsingGET(){
createXMLHttpRequest();
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.open("GET", getUrl() + "?" + getQueryString());
xmlHttp.send(null);
}
function doRequestUsingPOST(){
createXMLHttpRequest();
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.open("POST", getUrl());
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttp.send(getQueryString());
}
function handleStateChange(){
if(xmlHttp.readyState == 4){
if(xmlHttp.status == 200){
parseResult();
} else if (xmlHttp.status == 0) {
alert("连接服务器失败");
}
}
}
function parseResult(){
var responseText = xmlHttp.responseText;
// var responseXML = xmlHttp.responseXML;
}
</script>
参考文档
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest