Ajax技术的核心是XMLHttpRequset对象(简称XHR),XHR为向服务器发送请求和解析服务器响应提供了流畅的接口,能够以异步的方式从服务器取得更多信息,意味着用户单机后,可以不必刷新页面也能取得新数据。
要求你的js文件,HTML文件,要读取的文件一定是统一的字符集编码
要注意阻止缓存。原理:请求的文件的url一直在变就可以阻止缓存
ajax(‘aaa.txt?t=’+new Date().getTime(),function(){},function(){});这个值一直在变,一秒就有1000个情况
可以读取数据并且创造元素
HTTP请求方式:post和get方式
get方式:
1、把数据放在url上一起传递给服务器
2、容量小
3、安全性差
4、有缓存,
post方式:不通过网址传递
容量大
安全性较好
没有缓存,每一次都要从服务器上获取
原生ajax如何写
第一步:创建一个ajax对象 var oAjax = new XMLHttpRequest();只兼容非ie6的浏览器
第二步:连接到服务器 oAjax.open("GET","文件名","true") 方法,文件名,异步传输 文件名记得阻止缓存
第三步:发送请求 oAjax.send();
第四步:接受返回值 oAjax.onreadystatechange = function(){} 返回一个事件,等待被调用执行
兼容ie6:
if(window.XMLHttpRequest){
var oAjax = new XMLHttpRequest();
}else{
var oAjax = new ActiveXObject("Microsoft.XMLHTTP");
}
oAjax.onreadystatechange = function(){//必须在调用open()之前指定onreadystatechange事件处理程序才能确保跨浏览器兼容性。
if(oAjax.readyState==4)//读取完成{
if(oAjax.status==200)//读取成功{
alert('成功:'+oAjax.responseText);
}else{
alert('失败:'+oAjax.status);
}
}
}
readystate的四种状态:
0:(为初始化)还没有调用open()方法
1:(载入)已调用send()方法,正在发送请求
2:(载入完成)send()方法完成,已收到全部响应内容
3:(解析)正在解析响应内容
4:(完成)响应内容解析完成,可以在客户端调用了
send(string):仅用于post请求
与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。
然而,在以下情况中,请使用 POST 请求:
- 无法使用缓存文件(更新服务器上的文件或数据库)
- 向服务器发送大量数据(POST 没有数据量限制)
- 发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠
如果您希望通过 GET 方法发送信息,请向 URL 添加一个唯一的 ID:
xmlhttp.open("GET","/try/ajax/demo_get.php?t=" + Math.random(),true);
如果需要像 HTML 表单那样 POST 数据,请使用 setRequestHeader() 来添加 HTTP 头。然后在 send() 方法中规定您希望发送的数据:xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
responseText | 获得字符串形式的响应数据。 |
responseXML | 获得 XML 形式的响应数据。 |
responseText 属性返回字符串形式的响应,因此您可以这样使用:
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
如果来自服务器的响应是 XML,而且需要作为 XML 对象进行解析,请使用 responseXML 属性:
当请求被发送到服务器时,我们需要执行一些基于响应的任务。
每当 readyState 改变时,就会触发 onreadystatechange 事件。