ajax不执行success回调只执行error; 但每次点击数据库中都能查询到值
代码如下:
$.ajax({
type:"POST",
url:"ActileTypeInsertAction.action",
dataType:"JSON",
async:false,
timeout:2000,
data:{ActileTypeName:$("input[name='ActileTypeName']").val()},
success:function(data,textStatus){
alert(myData);
if(data.returnstr=="1")
{
alert("XXXX");}
else{
$("span[name='mgs']").html("XXXXX");
alert(data.returnstr);
}
},
error:function(XMLHttpRequest,textStatus,errorThrown){
alert("请求对象XMLHttpRequest: "+XMLHttpRequest);
alert("error:"+textStatus);
alert("异常对象errorThrown:"+errorThrown);
}
});
action:
HttpServletRequest request=ServletActionContext.getRequest();
HttpServletResponse response=ServletActionContext.getResponse();
PrintWriter out=null;
response.setContentType("text/html;charset=UTF-8");
response.setHeader("Cache-Control", "no-Cache");
out=response.getWriter();
String returnstr="系统错误";
String ActileTypeName=request.getParameter("ActileTypeName");
if(("".equals(ActileTypeName))||(ActileTypeName==null))
{
returnstr="非法进入";
}
else
{
ActileTypeDao atd=new ActileTypeDao();
ArticleTypeBean atb=new ArticleTypeBean();
atb.setTypeName(java.net.URLDecoder.decode(request.getParameter("ActileTypeName"),"UTF-8"));
boolean flag=atd.InsertActileType(ActileTypeName);
if(flag)
{
returnstr="0";
}
else
{
returnstr="1";
}
}
out.println("{returnstr:'" + returnstr + "'}");
out.close();
return null;
求各位大侠指点
我觉得是你的ajax属性设置错误。当dataType:"JSON"时,Jq会尝试将你后台返回的数据转换为Json对象,由于你的后台返回的不是Json,导致转换出错,所以...每次都error了~
textStatus是多少。
data:{ActileTypeName:$("input[name='ActileTypeName']").val()},????
json格式:{"param1":"hello"}
ActileTypeName加双引号“”
{"ActileTypeName":$("input[name='ActileTypeName']").val()},
这样你的下面这句语句才会取到值
String ActileTypeName=request.getParameter("ActileTypeName");
感谢各位;问题自己解决了、