ajax向后台请求数据时执行error不执行success

$(function() { $("input[name=uname]").blur(function() { var name = $(this).val(); if(name==null||name==""){ $("#yid span").html("用户名不能为空"); }else{ $.ajax({ "url" : "RegistServlet", "type" : "get", "data" : "name="+name, "dataType" : "text", "success" : function(result) { $("#yid span").html(result); }, error: function(){ alert("报错了"); } }); } }); })

把success的双引号去掉呢

去掉success的引号

success 引号去了试试,,还有可能就是返回的result必须是标准的json格式,试下吧。

dataType 写成json 后台返回json格式的就好了

确认几个问题,来排除 dataType错误 包括格式错误,类型错误,楼上所说的json格式是否对应 另外 同步异步,一般不会出问题 。
现在首先要做的就是你要把 error Alert出来,一堆代码真的把人看花。

还有一个原因可能是你的url 路径不正确,也会直接跳到error里面去的

去掉success的引号

先去掉success的引号

不行的话,,浏览器F12,,看看请求内容,是否成功

$(function(){
$("input[name=uname]").blur(function(){
var name = $(this).val();
if(name == null|| name == ""){
$("#yidspan").html("用户名不能为空");
}else{
$.ajax({
url : "RegistServlet",
type : "get",
data : "name="+name,
dataType : "text",
success :function(result){
$("#yidspan").html(result);
},
error :function(){
alert("报错了");
}
});
}
});
});
原因可能:
1.后台返回的数据类型与ajax的dataType不吻合
2.后台返回的数据有问题
3.后台没有成功返回数据
建议你:
1.以后代码整理好后再发出来
2.首先后台通过控制台等多种方法确定页面值是否传入
3.确定传入后前端页面通过浏览器打印值是否收到
4.最外层缺分号