$.ajax()方法参数详解:
url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。
注意:这个要访问url必须与js文件在同一个域,否则会报错。
type: 要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和
timeout: 要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$.ajaxSetup()方法的全局设
async:要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求。
cache:要求为Boolean类型的参数,默认为true(当dataType为script时,默认为false)。
data: 要求为Object或String类型的参数,发送到服务器的数据。如果已经不是字符串,将自动转换为字符串格
dataType: 要求为String类型的参数,预期服务器返回的数据类型。如果不指定,JQuery将自动根据http包mime
beforeSend:要求为Function类型的参数,发送请求前可以修改XMLHttpRequest对象的函数,例如添加自定义
complete:要求为Function类型的参数,请求完成后调用的回调函数(请求成功或失败时均调用)。
success:要求为Function类型的参数,请求成功后调用的回调函数,有两个参数。
error:要求为Function类型的参数,请求失败时被调用的函数。该函数有3个参数,即XMLHttpRequest对象、错
contentType:要求为String类型的参数,当发送信息至服务器时,内容编码类型默认
dataFilter:要求为Function类型的参数,给Ajax返回的原始数据进行预处理的函数。
global:要求为Boolean类型的参数,默认为true。表示是否触发全局ajax事件。设置为false将不会触发全局
ifModified:要求为Boolean类型的参数,默认为false。仅在服务器数据改变时获取新数据。
jsonp:要求为String类型的参数,在一个jsonp请求中重写回调函数的名字。
username:要求为String类型的参数,用于响应HTTP访问认证请求的用户名。
password:要求为String类型的参数,用于响应HTTP访问认证请求的密码。
processData:要求为Boolean类型的参数,默认为true。默认情况下,发送的数据将被转换为对象(从技术角度
scriptCharset:要求为String类型的参数,只有当请求时dataType为"jsonp"或者"script",并且type是GET时
废话少说,直接上代码
1、利用ajax解析xml
$.ajax({ type: 'POST', url: 'http://10.0.x.xx:8080/hello.xml', data:{"id": "1", "type": "hello"} dataType: 'xml', success: function(docxml) { var root = $(docxml); var count = root.find('count').text(); //先清空频道列表子元素 var $scroller = $("#Tvlist-one"); $scroller.empty(); root.find('program').each(function() { var mydoc = document; var element = $(this); var channel = {}; channel.type = element.children('type').text(); channel.isfavorited = element.children('isfavorited').text(); var docFragment = mydoc.createDocumentFragment(); //类型为CHANNEL且收藏 if (channel.type == "CHANNEL" && channel.isfavorited == 1) { channel.id = element.children('id').text(); channel.name = element.children('name').text(); channel.playurl = element.children('playurl').text(); channel.logo = eval("(" + element.find("logo").html() + ")").url; // console.log(channel.logo); // var channelLi = '<li><img class="logo" src=\'' + channel.logo + '\'>' + channel.name // + '<img class=\'favorite\' src=\'' + favoritedIcon + '\'></li>'; var channelLi = mydoc.createElement('li'); channelLi.innerHTML = '<span class="Tv-logo"><img class="logo" src=\'' + channel.logo + '\'></span>' + channel.name + '<span class="Tv-favorite"><img class=\'favorite\' src=\'' + favoritedIcon + '\'></span>'; docFragment.appendChild(channelLi); } $scroller.append(docFragment); }); }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert('status code: ' + XMLHttpRequest.status); alert('ready state: ' + XMLHttpRequest.readyState); alert('text status: ' + extStatus); } });
对应的hello.xml文件:
<All> <count>2</count> <list> <program> <id>1</id> <name>xx</name> <type>good</type> <playurl>rtsp://xx.10.1.12/PLTV/1.smil</playurl> <encrypt>0</encrypt> <isfavorited>0</isfavorited> <logo>{"url": "http://10.0.x.xx:8080/image/1.png"}</logo> </program> <program> <id>2</id> <name>world</name> <type>hello</type> <playurl>rtsp://xx.10.1.12/PLTV/2.smil</playurl> <encrypt>0</encrypt> <isfavorited>1</isfavorited> <logo>{"url": "http://10.0.x.xx:8080/image/2.png"}</logo> </program> </list> </All>
2、利用ajax解析json
$.ajax({ type: 'POST', url: 'http://10.0.3.x.xx:8080/xx/xx/hello.json', data: {"id": "1", "type": "hello"}, dataType: 'json', success: function(data) { //先清空列表子元素 var $scroller = $("#Tvlist-one"); $scroller.empty(); var mydoc = document; var docFragment = mydoc.createDocumentFragment(); var count = data['count']; var channelList = data['list']['program']; var listLength = channelList.length; for (var i = 0; i < listLength; i++) { var channel = channelList[i]; if (channel.type == "CHANNEL") { <span style="white-space:pre"> </span> //string转成JSON,两种方式 var logo = $.parseJSON(channel.logo).url;//eval("(" + channel.logo + ")").url; console.log(logo); var channelLi = mydoc.createElement('li'); channelLi.innerHTML = '<span class="Tv-logo"><img class="logo" src=\'' + logo + '\'></span>' + channel.name; //收藏图标 if (channel.isfavorited == 1) { channelLi.innerHTML += '<span class="Tv-favorite"><img class=\'favorite\' src=\'' + favoritedIcon + '\'></span>'; } docFragment.appendChild(channelLi); } } $scroller.append(docFragment); }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert('status code: ' + XMLHttpRequest.status); alert('ready state: ' + XMLHttpRequest.readyState); alert('text status: ' + extStatus); } });
对应的json字符串:
{ "count": "2", "list": { "program": [ { "id": "1", "name": "xx", "type": "hello", "playurl": "rtsp://xx.10.1.12/PLTV/1.smil", "encrypt": "0", "isfavorited": "0", "logo": "{\"url\": \"http://10.0.x.xx:8080/1.png\"}" }, { "id": "2", "name": "world", "type": "hello", "playurl": "rtsp://xx.10.1.12/PLTV/2.smil", "encrypt": "0", "isfavorited": "1", "logo": "{\"url\": \"http://10.0.x.xx:8080/2.png\"}" } ] } }