【parsererror】显示parsererror错误,怎么解决?

  【parsererror】显示parsererror错误,怎么解决?

  【问题描述】:

function Jajax(){
	/**
	 * 服务器响应所返回的数据
	 * 
	 * @var string 
	 */
	this.responseXMLObj;

	/**
	 * ajax 请求的类型 ("POST" 或 "GET"), 默认是 "POST"
	 * 
	 * @var string 
	 */
	this.type = 'POST';

	/**
	 * ajax 要将请求发送到的URL地址
	 * 
	 * @var string 
	 */
	this.url = null;

	/**
	 * ajax 期望从服务器端返回的数据类型。无默认值:如果服务器返回XML,
	 * 就将responseXML传递到回调函数,否则将resposeText传递到回调函数
	 * 
	 * @var string 
	 */
	this.dataType = null;
	
	/**
	 * 只有响应自上次请求后被修改过才承认是成功的请求。是通过检查头部的Last-Modified值实现的。
	 * 默认值为false,即忽略 对部分的检查
	 * 
	 * @var boolean
	 */
	this.ifModified = null;

	/**
	 * 覆盖全局延迟的局部延迟,例如,在其他所有延迟经过1秒钟后,启动一个较长延迟的单独请求。
	 * 
	 * @var int
	 */
	this.timeout = null;
	
	/**
	 * 是否为当前的请求触发全局AJAX事件处理函数,默认值为true。
	 * 设置为false可以防止触发像ajaxStart或ajaxStop这样的全局事件处理函数。
	 * 
	 * @var boolean
	 */
	this.global = null;
	
	/**
	 * jqurey 当请求失败时调用的函数。这个函数会得到三个参数:XMLHttpRequest对象、
	 * 一个描述所发生的错误类型的字符串和一个可选异常对象(如果有)
	 * 
	 * function
	 */
	this.error =  function(a,b,c){
		alert(b);
	}
	
	/**
	 * jqurey 当请求成功时调用的函数。这个函数会得到一个参数:从服务器返回的数据
	 * (根据“dataType”进行了格式化)。
	 * 
	 * function
	 */
	this.success =  function(){
//		alert('AJAX success');
	}

	/**
	 * jqurey 当请求完成时调用的函数。这个函数会得到两个参数:XMLHttpRequest对象和
	 * 一个描述请求成功的类型的字符串。
	 * 
	 * function
	 */
	this.complete = function() {
//		alert('AJAX complete');
	}
	
	/**
	 * 在默认的情况下,所有请求都是以异步的方式发送的(值为true)。
	 * 如果要使用同步方式,需要将此项设置为false。
	 * 
	 * @var boolean
	 */
	this.async = false;
	
	/**
	 * data - 要发送到服务器的数据。如果还不是一个字符串,就自动轮换为一个查询字符串。
	 * 即附加到GET请求的url后面的字符串。要防止自动处理见processData选项。
	 * 
	 * @var string 
	 */
	this.data = null;
	
	/**
	 * 发送 请求
	 * @return void
	 */
	this.sendAjax = function (){
		var sendQuery = 'this.responseXMLObj = $.ajax({'; 
		if(this.type != null){
			sendQuery = sendQuery + 'type: this.type,';
		}
		if(this.data != null){
			sendQuery = sendQuery + 'data: this.data,';
		}
		if(this.url != null){
			sendQuery = sendQuery + 'url: this.url,';
		}
		if(this.dataType != null){
			sendQuery = sendQuery + 'dataType: this.dataType,';
		}
		if(this.ifModified != null){
			sendQuery = sendQuery + 'ifModified: this.ifModified,';
		}
		if(this.timeout != null){
			sendQuery = sendQuery + 'timeout: this.timeout,';
		}
		if(this.global != null){
			sendQuery = sendQuery + 'global: this.global,';
		}
		if(this.error != null){
			sendQuery = sendQuery + 'error: this.error,';
		}
		if(this.success != null){
			sendQuery = sendQuery + 'success: this.success,';
		}
		if(this.complete != null){
			sendQuery = sendQuery + 'complete: this.complete,';
		}
		if(this.async != null){
			sendQuery = sendQuery + 'async: this.async';
		}
		sendQuery += '});';
		eval(sendQuery);



		if(this.responseXMLObj.responseXML != null){
			this.resolverXmlData(this.responseXMLObj.responseXML);
			
		}else if(this.responseXMLObj.responseText != ''){
			this.resolverTextData(this.responseXMLObj.responseText);
		}else{
			alert("请求失败!");
		}
	}
	
	/**
	 * 解析请求 xml 数据
	 * 
	 * @param responseXML xml
	 * @return void
	 */
	this.resolverXmlData = function (xml){
		for(var k = 0; k < xml.childNodes.length; k++){
			if (xml.childNodes[k].nodeName == "ajaxdom"){
				for (var i = 0; i < xml.childNodes[k].childNodes.length; i++){
					var cmdFnName;
					var cmdFnParam;
					var cmdFnParamString = '';
					var xmlFnData;
					
					if (xml.childNodes[k].childNodes[i].nodeName == "cmditem"){
						for (var j = 0; j < xml.childNodes[k].childNodes[i].attributes.length; j++) {//解析命令
							if (xml.childNodes[k].childNodes[i].attributes[j].name == "ajaxCmd") {
								cmdFnName = xml.childNodes[k].childNodes[i].attributes[j].value;
							}else if (xml.childNodes[k].childNodes[i].attributes[j].name == "cmdParam") {
								cmdFnParam = xml.childNodes[k].childNodes[i].attributes[j].value;
								cmdFnParams = cmdFnParam.split('|');
								for(var f = 0; f < cmdFnParams.length ; f++){
									cmdFnParamString += ",'" + cmdFnParams[f] +"'"
								}//end for f
							}
						}//end for j
						
						if(xml.childNodes[k].childNodes[i].hasChildNodes() != false){
							xmlFnData = xml.childNodes[k].childNodes[i].firstChild.data;
							//alert("xmlFnData");
						}else{
							xmlFnData = null;
						}
						eval("this."+cmdFnName+"('" + xmlFnData + "'" + cmdFnParamString + ")");
					}//end if

					delete cmdFnName;
					delete cmdFnParam;
					delete cmdFnParamString;
					delete xmlFnData;
				}//end for i
			}//end if 
		}//end for k
	}
	
	/**
	 * 解析请求 Text 数据
	 * 
	 * @param responseText text
	 * @return void
	 */
	this.resolverTextData = function (text){
		alert('返回了错误信息');
	}
	/**
	 * 获取form 表单的值
	 * 
	 * @param string|Object formItem
	 * @return string
	 */
	this.getFormValues = function(formItem){
		var objForm;
		var submitDisabledElements = false;
		if (arguments.length > 1 && arguments[1] == true){
			submitDisabledElements = true;
		}
		var prefix="";
		if(arguments.length > 2){
			prefix = arguments[2];
		}
		if (typeof(formItem) == "string"){
			objForm = document.getElementById(formItem);
		}else{
			objForm = formItem;
		}
		var sXml = "";
		if (objForm && objForm.tagName.toUpperCase() == 'FORM')
		{
			var formElements = objForm.elements;
			for( var i=0; i < formElements.length; i++){
				if (!formElements[i].name) {
					continue;
				}
				if (formElements[i].name.substring(0, prefix.length) != prefix) {
					continue;
				}
				if (formElements[i].type && (formElements[i].type == 'radio' || formElements[i].type == 'checkbox') && formElements[i].checked == false){
					continue;
				}
				if (formElements[i].disabled && formElements[i].disabled == true && submitDisabledElements == false) {
					continue;
				}
				var name = formElements[i].name;
				if (name)
				{
					sXml += '&';
					if(formElements[i].type=='select-multiple'){
						for (var j = 0; j < formElements[i].length; j++)
						{
							if (formElements[i].options[j].selected == true) {
								sXml += name + "=" + encodeURIComponent(formElements[i].options[j].value) + "&";
							}
						}
					}else{
						sXml += name+"="+encodeURIComponent(formElements[i].value);
					}
				} 
			}
		}
		return sXml;
	}

	/**
	 * 还原默认属性 方法不在这里还原
	 * 
	 * @return void
	 */
	this.restoreAttribute = function(){
		this.responseXMLObj = null;
		this.type = 'POST';
		this.url = null;
		this.dataType = null;
		this.ifModified = null;
		this.timeout = null;
		this.global = null;
		this.async = false;
		this.data = null;
	}

	/**
	 * 显示提示框
	 *
	 * @param string data
	 * @return void
	 */
	this.Jalert = function (data){
		
		//alert(data);
		//showmsg(data,0);
		message(data);
	}
	/**
	 * 显示提示框
	 *
	 * @param string data
	 * @return void
	 */
	this.Jalert2 = function (data){
		
		alert(data);
		
	}
	
	/**
	 * 插入数据 
	 * 
	 * @param string       data
	 * @param string|obj   obj
	 * @return void
	 */
	this.Jinsert = function (data,obj,type){
		switch (type){
			//alert(data);
			case 'id':		eval('$("#'+ obj +'").html(data)'); 	break;
			case 'obj': 	eval('$('+ obj +').html(data)');		break;
			case 'string':	eval('$("'+ obj +'").html(data)'); 		break;
			default:	break;
		}
	}
	
	/**
	 * 显示提示框
	 *
	 * @param string data
	 * @return void
	 */
	this.Jeval = function (data){
		eval(data);
	}
	
	/**
	 * 跳转
	 *
	 * @param string data
	 * @return void
	 */
	this.JwinOpen = function (data){
		if(data=="/"){
		window.open(data,'_top');
		}
		else{
		window.open(data,'_self');
			}
	}
	/**
	 * 清空框内容
	
	 * @param string data
	 * @return void
	 */
	this.JclearOrderList = function (){
		
		$("#orderList").empty();
		$('#chaseCode').attr('checked','');
		$('#stopChase').attr('checked','');
		$('#stopChase').attr('disabled','');	
		
		$('#showstop').css('display','none');
		$('#stopChase').attr('checked','');
		
		$('#tomultiple').attr('disabled','');
		$('#chaseinfo').css('display','none');
		$('#chaseinfo2').css('display','none');
		$('#nochaseinfo').css('display','');
		
		
	}
	/**
	 * pop
	 *
	 * @param string data
	 * @return void
	 */
	this.Jpop = function (data,width,title,direction){
		var menu = '<li>';
		menu += data;
		menu += '</li>';
		return overlib('<ul>'+menu+'</ul>',CSSCLASS,TEXTFONTCLASS,'fontClass',FGCLASS,'fgClass',BGCLASS,'bgClass',STICKY,CAPTIONFONTCLASS,'capfontClass', CLOSEFONTCLASS, 'capfontClass', CAPTION,'<b>'+title+':</b>',WIDTH, width,HAUTO,VAUTO,direction,CELLPAD,10,10,CLOSECLICK);
	}
}

  【问题分析】:

  谁写的这个类库,脑子被驴踢了?怎么用eval执行代码。。。

  怎么修改过来,

  parsererror错误是哪行?

  应该是你解析xml的代码不兼容w3c浏览器什么的


免责声明:

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。

附:

二○○二年一月一日《计算机软件保护条例》第十七条规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬!鉴于此,也希望大家按此说明研究软件!

注:本站《整站源码》《Discuz插件》栏目中所有资源均来自网络转载,版权归原作者和公司所有,如果有侵犯到您的权益,请第一时间联系邮箱:852414410@qq.com 我们将配合处理!

-----------------------------------------------------------------------------------------------------------

版权声明:

一、本站致力于为软件爱好者提供国内外软件开发技术和软件共享,着力为用户提供优资资源。
二、本站提供的部分源码下载文件为网络共享资源,请于下载后的24小时内删除。如需体验更多乐趣,还请支持正版。
三、我站提供用户下载的所有内容均转自互联网。如有内容侵犯您的版权或其他利益的,请编辑邮件并加以说明发送到站长邮箱。站长会进行审查之后,情况属实的会在三个工作日内为您删除。
-----------------------------------------------------------------------------------------------------------


帝国CMS模板网 » 【parsererror】显示parsererror错误,怎么解决?

发表评论

您需要后才能发表评论

专注帝国CMS模板开发、建站、一站式服务平台

查看演示 联系站长