原生的ajax的使用:
为了每次写Ajax的时候都节省一点时间, 可以把对象检测的内容打包成一个可复用的函数:
function getHTTPObject(){ var xhr=false; if (window.XMLHttpRequest){ xhr = new XMLHttpRequest () ; }elseif(window.ActiveXObject){ xhr=new ActiveXObject("Microsoft.XMLHTTP"); } return xhr: }
abort()停止当前请求
getAllResponseHeaders() 把http请求的所有响应收不作为键值对返回
getResponseHeader("header")返回指定首部的串值
open("menthod","url",[true或false])异步请求或同步请求)建立对服务器的调用,menthod参数可以是GET或者 POST url参数可以是相对url或者绝对url
异步请求:同一个时间允许多个进程
同步请求:同一个时间允许一个进行
send(content) 发送请求
setRequestHeader("header","value") 把指定的首部设置为所提供的值 在设置任何首部之前必须先调用open
readyState 返回当前请求状态.有5个可取值.
0=未初始化 (刚创建对象,尚未调用open方法)
1=正在加载 (已经调用open方法)
2=已经加载 (已经调用send方法)
3=交互中 (正在返回数据中,但是还没有返回完整)
4=完成 (数据已经完全返回完毕了)
responsebody 将以unsigned byte数组形式返回,只读
responseStream 以Ado Strean对象的形式返回响应信息,只读
responseText 以字符串的形式接受服务器的返回信息
responseXML 以XML对象的形式返回信息,这个对象可以解析为dom对象
status 服务器的http状态码
statusText http状态码的对应文本(ok或者NotFount等)
onredaystatechange每个状态改变都是触发这个事件处理器,通常会调用一个JavaScript函数
为了获取较多的状态.最好在创建好ajax对象后就设置
1传递参数对 中文、=、 &等特殊字符进行处理,JavaScript中使用encodeURIComponent('url');函数对参数进行编码(服务端接收参数后无需解码.)(post无需编码)
特殊符号如下:以及对于的原作用
# 用来标志特定的文档位置 %23 % 对特殊符号进行编码 %25 & 分割不同的变量值 + 在变量值中表示空格 %2B \ 表示目录路径 %2F = 连接键值 %3D ? 查询字符串的开始 %30 汉字的每个字节转换为%加两个十六进制数字
header("Cache-Control:no-cache");
header("Pragma:no-cache");
header("Expires:-1");