初学ajax
ajax出现无疑改变了web应用:从开始的整体页面的刷新到局部页面的数据显示,不用刷新页面就可以与服务器交互;
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 function ajaxPost(data){ 2 3 var xhr=new XMLHttpRequest(); 4 xhr.open("POST",url); 5 xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded") 6 xhr.send(data) 7 8 9 10 11 12 }
这段是现在ajax技术应用post的发送数据;真正的响应服务器的数据是在异步调用函数是发生的
function response(callback){ var xml=new XMLHttpRequest();/*获取XMLHttpRequest对象*/ xml.open("get",url,true);/*这里的open打开的是交互地址;接受三个参数;(第一个参数是指定http方法或动作,第二个请求地址,第三个是否异步)*/ xml.onreadystatechange=callback;/*异步调用需要监听readystatechange事件*/ xml.send();/*发送主体这里为空*/ }
这里的两段代码其实都是差不多,只是发送和取得响应的区别;主要就是
要获取window.XMLHttpRequest对象;在Ie中他是一个ActiveX对象;可以模拟new XMLHttpRequest():
if(window.XMLHttpRequest=='undefined') { window.XMLHttpRequest=function() { return new ActiveXObject('Microsoft.XMLHTTP'); } }
上面的代码看起来有点混乱这边在梳理一下:
/*先说ajax post发送数据,然后获取响应*/ function postDate(data,callback) { var xml=new XMLHttpRequest(); xml.open("method",url);/*这里的method是两种http方法:get||post*/ xml.setRequestHeader("Content-Type","text/plain,charset=utf-8")/*post请求要去设置请求头;指定请求主题的MIME类型*/ xml.onreadystatechange=function() { xml.readyState==4&&callback(xml.responseText) } xml.send(data); } /*get发送数据就改变一下发送方法;数据信息包含在请求地址*/