ajax请求的四个步骤
程序员文章站
2022-04-28 21:36:17
ajax请求的四个步骤
什么是ajax:
异步javascript和xml。
无刷新读取数据。无需加载整个页面的情况下,刷新页面某一部分。
常用的地方:用户注册和聊天室。...
ajax请求的四个步骤
什么是ajax:
异步javascript和xml。
无刷新读取数据。无需加载整个页面的情况下,刷新页面某一部分。
常用的地方:用户注册和聊天室。
同步(sync): 发出一个功能调用时,在没有得到结果之前,该调用就不返回或继续执行后续操作。 异步(async):异步与同步相对,当一个异步过程调用发出后,调用者在没有得到结果之前,就可以继续执行后续操作。当这个调用完成后,一般通过状态、通知和回调来通知调用者。对于异步调用,调用的返回并不受调用者控制。
ajax请求的步骤
1.创建xmlhttprequest(创建异步对象)
不同使用的异步调用对象也有所不同,在ie浏览器中异步调用使用的是xmlhttp中的xmlhttprequest对象,而在firefox浏览器中则直接使用xmlhttprequest组件。
var xmlhttp = null; if(window.xmlhttprequest){ xmlhttp = new xmlhttprequest();//ie6及以下不兼容,针对主流浏览器 }else{ // 针对ie5, ie6 xmlhttp = new activexobject("microsoft,xmlhttp"); }
不同浏览器创建异步对象兼容处理
function createxmlhttprequest(){ 3 var request = false; 4 //一般先判断非ie浏览器 5 //window对象中有xmlhttprequest存在就是非ie,包括(ie7,ie8) 6 if(window.xmlhttprequest){ 7 request=new xmlhttprequest();//非ie以及ie7,ie8浏览器 8 if(request.overridemimetype){ 9 request.overridemimetype("text/xml");//重置mime类型 10 } 11 //window对象中有activexobject属性存在就是ie浏览器的低版本 12 }else if(window.activexobject){ 13 var versions = ['microsoft.xmlhttp', 14 'msxml.xmlhttp', 15 'msxml2.xmlhttp.7.0', 16 'msxml2.xmlhttp.6.0', 17 'msxml2.xmlhttp.5.0', 18 'msxml2.xmlhttp.4.0', 19 'msxml2.xmlhttp.3.0', 20 'msxml2.xmlhttp'];//各种ie浏览器创建ajax对象时传递的参数 21 for(var i=0; i2.连接服务器xmlhttp.open('get',url,true); //xmlhttp.open(method,url,async) method 包含 get 和 post两种方法url主要是文件或资源的路径,async参数为true(代表异步)或者false(代表同步)
3.向服务器端发送请求
xmlhttp.send();4.接受服务器的返回
xmlhttp.onreadystatechange = function(){ if(xmlhttp.readystate == 4){ //判断交互是否成功 if(xmlhttp.status == 200){ //获取服务器返回的数据 获取纯文本数据 //alert('成功:'+xmlhttp.responsetext); }else{ //alert('失败'); } } };>