ajax对于不同浏览器的不同方法
ajax对于IE6和IE5浏览器执行代码
ActiveXObject()
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
对于IE7和IE7以上的浏览器
XMLHttpRequest()
xmlhttp = new XMLHttpRequest();
onreadyStateChange事件
onreadyStateChange事件可指定一个事件处理函数来处理XMLHttpRequest对象的执行结果onreadyStateChange事件是在readyState属性发生改变时触发的,
readyState的值
readyState的值表示了当前请求的状态,在事件处理程序中可以根据这个值来进行不同的处理。
readyState有五种可取值:
0:尚未初始化,1:正在加载,
2:加载完毕,
3:正在处理;
4:处理完毕。一旦readyState属性的值变成了4,就可以从服务器返回的响应数据进行访问了。
Http状态码 含义
200 请求成功202 请求被接受但处理未完成
400 错误请求
404 请求资源未找到
500 内部服务器错误
.open方法
xmlhttp.open("GET","/try/ajax/ajax_info.txt",true);xmlhttp.open(bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword);
bstrMethod
http方法,例如:POST、GET、PUT及PROPFIND。大小写不敏感。bstrUrl
请求的URL地址,可以为绝对地址也可以为相对地址。varAsync[可选]
布尔型,指定此请求是否为异步方式,默认为true。如果为真,当状态改变时会调用onreadystatechange属性指定的回调函数。true和false的区别是:
true:请求是异步的 说明发送请求后不必等到响应回来就可以干后边的事
false:的话是同步的 必须等到响应回来了 才能干后边的事
bstrUser[可选]
如果服务器需要验证,此处指定用户名,如果未指定,当服务器需要验证时,会弹出验证窗口。bstrPassword[可选]
验证信息中的密码部分,如果用户名为空,则此值将被忽略。
如果需要像 HTML 表单那样 POST 数据,请使用 setRequestHeader() 来添加 HTTP 头。然后在 send() 方法中规定您希望发送的数据:
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");xmlhttp.send("fname=Henry&lname=Ford");
setRequestHeader(header,value)
向请求添加 HTTP 头:
header: 规定头的名称value: 规定头的值
服务器响应方式:
responseText 获得字符串形式的响应数据。responseXML 获得 XML 形式的响应数据。
一段AJAX参考代码:
<script>function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
{
// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
xmlhttp=new XMLHttpRequest();
}
else
{
// IE6, IE5 浏览器执行代码
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
//判断当前请求的状态
xmlhttp.onreadystatechange=function()
{
//如果当前请求状态是处理完毕,并且http状态码为请求成功
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
//把从服务器拿出来的文本内容放入id为mydiv的DIV中
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
//responseText属性包含了从服务器返回的文字信息。这些信息其实就是所请求的页面。
// 如果包括<html></html>标签,那么在调用某个span的innerHTML()方法时,
// 由于<html></html>不能嵌套在<span></span>中,就会引发“未知运行期错误”
}
}
//设置
xmlhttp.open("GET","/try/ajax/ajax_info.txt",true);
xmlhttp.send();
xmlhttp.send() 方法接受一个可选的参数,其作为请求主体;如果请求方法是 GET 或者 HEAD,则应将请求主体设置为 null。
在 get方式下里面的参数应为null,也就是说send()方法仅用于post请求
在 post请求下可传递参数
}
</script>