@SuppressWarnings("unchecked") @RequestMapping(value="/login",method=RequestMethod.POST) @ResponseBody public Map login(@RequestBody LoginDto login, HttpServletRequest request, HttpServletResponse response,Model model){ Map<String,Object> result = new HashMap<String,Object>(); try { MyUsernamePasswordToken token = new MyUsernamePasswordToken(login.getUserName(), login.getPassword()); logger.info("andriod login--------------"); logger.info("userName:"+login.getUserName() +" password:"+login.getPassword()); token.setIsMember(login.getIsMember()); request.getSession().setAttribute("isMember", login.getIsMember()); SecurityUtils.getSubject().login(token); /* SecurityUtils.getSecurityManager().login( SecurityUtils.getSubject(), token); */ result.put("result", "success"); return result; } catch (AuthenticationException e) { result.put("result", "failed"); result.put("error", "密码或账号错误."); return result; } }
上述代码, andirod app 可以访问,但angular HttpClient 返回错误, 说无法认识参数,参数都是可以的,
response.setHeader("Access-Control-Allow-Headers", "x-requested-with, Content-Type")
查了半天,原来是没有加上 Content-Type, 加上后,问题消失,花费半天时间。~~~~~~~~