一直显示parsererror错误,怎么解决

hrxnoise 2011-10-04 09:33:06
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);
}
}


...全文
8423 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Go 旅城通票 2011-10-07
  • 打赏
  • 举报
回复
parsererror错误是哪行?

应该是你解析xml的代码不兼容w3c浏览器什么的
hrxnoise 2011-10-05
  • 打赏
  • 举报
回复
怎么修改过来,
Go 旅城通票 2011-10-05
  • 打赏
  • 举报
回复
谁写的这个类库,脑子被驴踢了?怎么用eval执行代码。。。

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧