浏览 5252 次
锁定老帖子 主题:该死的JQUERY AJAX函数
精华帖 (0) :: 良好帖 (0) :: 新手帖 (7) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-03-25
var buildActionMenu = function (module){ $('#action-menu').each(function(){ $(this).empty(); var datasource = './appstore/contenter/action-menu/exep-menu.xml' ; //var datasource = './appstore/contenter/action-menu/ss.xml' ; $.ajax({ //async : false , type: 'GET' , url: datasource , //dataType : 'html', dataType : 'xml', timeout:1000, // dataFilter : function(data,type){ // //alert(data == null) ; // //alert(data);nitobi.Debug.log(type); // return data ; // } , success: function(data){ nitobi.Debug.log('加载数据源: '+this.url); nitobi.Debug.log($('rss channel item',data).length); $('/rss//item',data).each(function(){ var title = $('title',this).text(); alert(title); }); } , error: function(){ nitobi.Debug.log('不能加载数据源: '+this.url); } }); }); } JQUERY AJAX函数的深入 , 下午花了两个小时在找错误,怎么Jquery就获得不了XML文件?? 这里总结出两点: 1. IE6在本地非服务器环境下不能提供XML文件的查看功能,所以在非服务器环境下不能将 dataType 设置为xml , 但是可以设置成 json和text html之类的格式.. 2. 在服务器环境下使用Jquery获取XML时,不仅仅是XML,还有JSON,如果格式有问题,将不返回结果和任何错误提示.. 如果数据正确, 但是采用XPath来查找元素时 XPATH路径写 错了,不会获取任何结果,也不会报任何错误提示... 这里得出一个经验,出问题了最好将 dataFilter : function(data,type){ // //alert(data == null) ; // //alert(data);nitobi.Debug.log(type); // return data ; // } , 这个函数带入,在里面alert一下,或者加个断点查看一下. 现在看来,非Firebug很难在有东西能够做到加断点查看这点..... 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-03-25
因为FF的XML解析引擎的不同,所以本地浏览不存在任何问题,这就是IE和FF的一个差别吧.....
|
|
返回顶楼 | |
发表时间:2009-03-25
真正的原因是 IE在本地 不能解析XML文件
也就是说 它的XML解析器 必须通过某种机制触发 而这种触发事件应该在服务器端发回的 mime 文件类型时触发 而FF能在本地去判别文件的MIME类型,所以他能够... 这是我能想到的唯一答案... 请指教 |
|
返回顶楼 | |
发表时间:2009-08-14
这里对error函数做一个补充,器可以接受三个参数:
error : function(xhr,status,e){ // 判断超时只需 // status == "timeout" } |
|
返回顶楼 | |