Ajax中的x指的是XML,早期的数据格式都喜欢用XML,然后一层层的解析。当然简单的也会返回HTML(或称HTML片段)。
现在使用JSON格式的也很多。根据不同需求,给Ajax对象添加了三个实用方法:Ajax.text、Ajax.json、Ajax.xml。 Ajax.text返回纯文本,即responseText Ajax.json返回json,即会将responseText解析成js对象 Ajax.xml返回xml文档,即responseXML 使用方式与Ajax.request相同,第一个参数是请求url,第二个是配置参数。
完整代码
Ajax = function(){ function request(url,opt){ function fn(){} var async = opt.async !== false, method = opt.method || 'GET', type = opt.type || 'text', encode = opt.encode || 'UTF-8', data = opt.data || null, success = opt.success || fn, failure = opt.failure || fn; method = method.toUpperCase(); if(data && typeof data == 'object'){//对象转换成字符串键值对 data = _serialize(data); } if(method == 'GET' && data){ url += (url.indexOf('?') == -1 ? '?' : '&') + data; data = null; } var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP'); xhr.onreadystatechange = function(){ _onStateChange(xhr,type,success,failure); }; xhr.open(method,url,async); if(method == 'POST'){ xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded;charset=' + encode); } xhr.send(data); return xhr; } function _serialize(obj){ var a = []; for(var k in obj){ var val = obj[k]; if(val.constructor == Array){ for(var i=0,len=val.length;i
= 200 && s < 300){ switch(type){ case 'text': result = xhr.responseText; break; case 'json': result = function(str){ return (new Function('return ' + str))(); }(xhr.responseText); break; case 'xml': result = xhr.responseXML; break; } success(result); }else{ failure(xhr); } }else{} } return (function(){ var Ajax = {request:request}, types = ['text','json','xml']; for(var i=0,len=types.length;i ajax_03.zip
延伸阅读
- 2011-9-20-- ajax后退,ajax后退解决方案(四)
- 2011-9-21-- ajax后退,ajax后退解决方案(五)
- 2011-9-19-- ajax后退,ajax后退解决方案(二)
- 2011-9-18-- phpajax,ajax后退解决方案(一)
- 2010-12-9-- phpajax,一个有趣的Ajax Hack示范
- 2010-12-9-- phpajax,php与ajax一些经验
- 2010-12-15-- phpajax,利用PHP和AJAX创建RSS聚合器
- 2010-12-9-- poller,ajax poller
- 2010-12-9-- ajax开发,AJAX开发简略 (第一部分)
- 2010-12-9-- ajax问题,用 ajax 的方法解决网页广告显示的问题
最新评论