标签:eth stat encode function type 字符串 客户 异步 doc
对象: XMLHttpRequest
属性:
readyState
请求状态,开始请求时值为0直到请求完成这个值增长到4
responseText
目前为止接收到的响应体,readyState<3此属性为空字符串,=3为当前响应体,=4则为完整响应体
responseXML
服务器端相应,解析为xml并作为Document对象返回
status
服务器端返回的状态码,=200成功,=404表示“Not Found”
statusText
用名称表示的服务器端返回状态,对于“OK”为200,“Not Found”为400
方法:
setRequestHeader()
向一个打开但是未发生的请求设置头信息
open()
初始化请求参数但是不发送
send()
发送Http请求
abort()
取消当前相应
getAllResponseHeaders()
把http相应头作为未解析的字符串返回
getResponseHeader()
返回http相应头的值
事件句柄:
onreadystatechange
每次readyState改变时调用该事件句柄,但是当readyState=3有可能调用多次
// JavaScript Document
var ajax={
post:function(url,data,func){//导入3个参数
//创建ajax对象
var xhr=null;
if(window.ActiveXObject){//处理兼容问题
xhr = new ActiveXObject("Msxml2.XMLHTTP")||new ActiveXObject("Microsoft.XMLHTTP");
}else{
xhr = new XMLHttpRequset();
}
//建立连接
xhr.open("post",url,true);//method url true=异步
//发送请求
xhr.setRequsetHeader("Content-Type","application/x-www-form-urlencoded");
xhr.send(data);
//获取响应
xhr.onreadystatechange = function(){//判断 需满足两个条件
if(xhr.readyState==4){
if(xhr.status==200){
var str = xhr.responseText;//str 为json数据
if(typeof func=="function"){//判断func是否为函数,为函数时调用
func(str);//回调函数
}
}
}
}
},//","必须添加
get:function(url,func){//导入两个参数
//创建ajax对象
var xhr = null;
if(window.ActiveXObject){
xhr = new ActiveXObject("Msxml2.XMLHTTP")||new ActiveXObject("Microsoft.XMLHTTP");
}else{
xhr = new XMLHttpRequset();
}
//建立连接
xhr.open("get",url,true);
//发送请求
xhr.send();
//获取响应
xhr.onreadystatechange = function(){
if(xhr.readyState==4&&xhr.status==200){
var str = xhr.responseText;
if(typeof func == "function"){
func(str);
}
}
}
}
}
从代码我们看出:首先我们创建一个 XMLHttpRequest 对象(由于浏览器不同需要 相应判断处理),设置相应的请求信息(通过open来做,例如请求地址等 设置 );然后我们绑定 onreadystatechange 事件,在这个事件中我们根 据服务器返回状态的不同来做出不同处理,这其中主要是请求成功后接收相应的返回值来通过 javascript 对客户端做出相应操作(我 们只是使显示有关信息);最后我们发送这个请 求(通过send方法)。
标签:eth stat encode function type 字符串 客户 异步 doc
原文地址:http://www.cnblogs.com/crazycode2/p/7015701.html