AJax请求处理成功却不进入success的解决方案

微笑问题描述:

我的jsp页面中发送了如下请求:

 $.ajax({
		        url:"${ctp}/SchemaOperate/createSch",
		        data:data.field,
		        type:'post', 
		        cache:false, 
		        dataType:'json',
		        success:function(result){
		        	if(result=="success"){
		        		parent.layer.msg("名为 "+data.field.name+" 的模式创建成功!");		        		
		        	}else if(result=="exitName"){
		        		parent.layer.msg("已有名为 "+data.field.name+" 的模式,创建失败!");
		        	}
					parent.layer.close(index); //先关闭
					//刷新整个树
					var root =  parent.$('#kunlunMenuTree').tree("getRoot");
					parent.$('#kunlunMenuTree').tree("reload",root.target);
		      }		   	});

后端处理成功,数据库数据也得到了更新,然而返回前端页面时就是始终未进入到这个success方法中。之前是可以的。可能是后期改动造成了部分代码的更改,但大体相同。

后查询后得知,这种情况大致产生原因是进入了error方法,可用alert()进行测试:

  • 返回的数据类型不是严格按照json格式
  • 请求域与当前域不一致
大笑解决方案:添加error的function,内部操作与success一致即可,如,代码更新后:
 $.ajax({
		        url:"${ctp}/SchemaOperate/createSch",
		        data:data.field,
		        type:'post', 
		        cache:false, 
		        dataType:'json',
		        success:function(result){
		        	alert("success");
		        	if(result=="success"){
		        		parent.layer.msg("名为 "+data.field.name+" 的模式创建成功!");		        		
		        	}else if(result=="exitName"){
		        		parent.layer.msg("已有名为 "+data.field.name+" 的模式,创建失败!");
		        	}
					parent.layer.close(index); //先关闭
					//刷新整个树
					var root =  parent.$('#kunlunMenuTree').tree("getRoot");
					parent.$('#kunlunMenuTree').tree("reload",root.target);
		      },
		      error:function(result){
		    	  alert("error");
		    	  	if(result=="success"){
		        		parent.layer.msg("名为 "+data.field.name+" 的模式创建成功!");		        		
		        	}else if(result=="exitName"){
		        		parent.layer.msg("已有名为 "+data.field.name+" 的模式,创建失败!");
		        	}
		    	  	parent.layer.close(index); //先关闭
					//刷新整个树
					var root =  parent.$('#kunlunMenuTree').tree('getSelected');
					parent.$('#kunlunMenuTree').tree("reload",root.target);
		      }
		   	});


1. 返回的每条数据是否是dataType中定义的数据类型。如果有部分数据不是或者哪怕一条数据没有严格的按照dataType定义的类型,程序就会进入到error:function(){****}
      2. 请求的域和当前域是否是同一域,如果不是同一域也十分有可能进入error:function(){***}   ”

1 1. 返回的每条数据是否是dataType中定义的数据类型。如果有部分数据不是或者哪怕一条数据没有严格的按照dataType定义的类型,程序就会进入到error:function(){****}
      2. 请求的域和当前域是否是同一域,如果不是同一域也十分有可能进入error:function(){***}   ”. 返回的每条数据是否是dataType中定义的数据类型。如果有部分数据不是或者哪怕一条数据没有严格的按照dataType定义的类型,程序就会进入到error:function(){****}

      2. 请求的域和当前域是否是同一域,如果不是同一域也十分有可能进入error:function(){***}   ”


猜你喜欢

转载自blog.csdn.net/sj0613xz/article/details/78933487
今日推荐