Extjs提交表单
success:function(form,action){
var data=Ext.JSON.decode(action.response.responseText);
Ext.Msg.alert("www ok",data.id);
},
failure: function(form, action){
if (action.failureType === action.CONNECT_FAILURE) {
Ext.Msg.alert('Error',
'Status:'+action.response.status+': '+
action.response.statusText);
}
if (action.failureType === action.SERVER_INVALID){
// server responded with success = false
Ext.Msg.alert('Invalid', action.result.errormsg);
}
Ext.Msg.alert('Invalid',action.failureType);
}
java后台
public class loginAction extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username= request.getParameter("username");
String password= request.getParameter("password");
if(username.equals("www")&&password.equals("123")){
response.getWriter().write("{id:0001}");
System.out.println(username+password);
}
}
}
可是,找了好久,发现怎么都是执行的failure的回调函数 action.failureType为server,百思不得其解
后来发现 回调success或failure是根据返回来的参数的json串中的"success"的值来决定的
response.getWriter().write("{id:0001}");
应该改为 response.getWriter().write("{success:true,id:0001}");
就可以解决问题