jquery中ajax执行总是跑到error函数中


代码如下:

$.ajax({

url: "./login/login.action",
type:"post",
dataType:'json',
data:{
"userName":$("#userName").val().trim(),
"password":$("#password").val().trim(),
"verifyCode":$("#verifyCode").val().trim()
},
success:function(data){
var mes=data.message;
if(mes=="success"){

}
},
error:function(){
alert("登录异常 ,请稍候重试或联系管理员!");
return;
}

});


action代码:



try {
HttpServletRequest request = ServletActionContext.getRequest();
String code = request.getSession().getAttribute("verifyCode").toString();
if(code.equals(verifyCode)){
User user = loginService.loginUserVer(userName,password);
if (user == null) {
message = "error";
}
//获取本机IP地址
// String ip = getRequest().getRemoteAddr();
message = "success";
}else{
message = "code";
}

} catch (Exception e) {
e.printStackTrace();
message = "fail";
}
return "jsoners";


Struts代码:

<package name="loginStruts" extends="struts-default,json-default" namespace="/login">
   
<action name="verifycode" class="com.app.login.action.VerifycodeAction" method="execute"></action>

<action name="login" class="loginAction" method="execute">
<result name="jsoners" type="json"/>
</action>

<action name="loginIn" class="loginAction" method="loginIn">
   <result name="success">/login/login_main.jsp</result>
</action>
</package>


运行能进入action,且执行正常,message值为success,但是ajax一直进入error,直接输入:http://localhost/xxx/login/login.action报:

org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.jso  异常

查询资料得知,ajax会默认吧get开头的方法当做json数据转换,需将action中非set,get方法替换掉,或者将service中dao的get方法加上@JSON(serialize=false):

@JSON(serialize=false)
public LoginDao getLoginDao() {
return loginDao;
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值