论坛首页 Web前端技术论坛

该死的JQUERY AJAX函数

浏览 5252 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (7) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-03-25  
该死的JQUERY AJAX函数


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很难在有东西能够做到加断点查看这点.....
   发表时间:2009-03-25  
因为FF的XML解析引擎的不同,所以本地浏览不存在任何问题,这就是IE和FF的一个差别吧.....
0 请登录后投票
   发表时间:2009-03-25  
真正的原因是 IE在本地 不能解析XML文件
也就是说 它的XML解析器 必须通过某种机制触发
而这种触发事件应该在服务器端发回的 mime 文件类型时触发

而FF能在本地去判别文件的MIME类型,所以他能够...

这是我能想到的唯一答案... 请指教
0 请登录后投票
   发表时间:2009-08-14  
这里对error函数做一个补充,器可以接受三个参数:
error : function(xhr,status,e){
   // 判断超时只需
   // status == "timeout"
}

0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics