Spring MVC 3,使用Ajax时转发不起作用

| 我有一个非常有趣的问题。我正在为我的Web应用程序创建登录页面,并且正在通过AJAX发送登录请求。如果成功,我想将用户转发到另一个页面。 看来他是怎么回事。我发送Ajax请求,控制器将我转发到需要的视图(我在调试模式下查看日志),但我停留在同一页面上,因为我认为该页面正在等待AJAX​​响应,因此转发不会发生。 我认为这也是处理此问题的错误方法,但是由于我是新来的,对此并不了解。如何登录并将用户转发到下一页。 谢谢。 这是我的代码: JS代码:
    Page.authenticate = function() {
        $.ajax({
              url: \"/login/authenticate/\" + $(\'#username\').val() + \"/\" + $(\'#password\').val(),
              type: \"GET\",
              success: function(poi){
                 // alert(\"nesto\");
              }
           });

        return true;
    }
控制器类别:
@Controller
public class LoginPageController {

private Logger logger = Logger.getLogger(this.getClass());

@Autowired
private UserManagement userManagement; 

@RequestMapping(value=\"/login/authenticate/{username}/{password}\", method=RequestMethod.GET)
public String authenticate(@PathVariable(\"username\") String userName, @PathVariable(\"password\") String password, Model model) {

if (userManagement.authenticateUser(userName, password)) {
        String forward = \"forward:/login/success\";
        return forward;
    } else {
        model.addAttribute(\"errorMessage\", \"Invalid Username/Password, please try again!\");
        return \"/\";
    }

}

}
    
已邀请:
        如果您使用的是AJAX,则需要在
@ResponseBody
注释内进行回复。
    @RequestMapping(value=\"/login/authenticate/{username}/{password}\", method=RequestMethod.GET)
    public String authenticate(@PathVariable(\"username\") String userName, @PathVariable(\"password\") String password, Model model) {

    if (userManagement.authenticateUser(userName, password)) {
            String forward = \"forward:/login/success\";
            return forward;
        } else {
            String forward = \"forward:/login/error?message=Invalid Username/Password, please try again!\";
            return forward;
        }

    }

     @RequestMapping(value=\"/login/success\", method=RequestMethod.GET)
      @Responsebody
      public String handleMySuccessRedirect() {
         return \"Logged In successfully\"
              } 

 @RequestMapping(value=\"/login/error\", method=RequestMethod.GET)
  @Responsebody
  public String handleMyExceptionOnRedirect(@RequestParamter(\"message\") String message) {
     return message;
          } 
更新:
 @RequestMapping(value=\"/login/authenticate/{username}/{password}\", method=RequestMethod.GET)
@ResponseBody
    public String authenticate(@PathVariable(\"username\") String userName, @PathVariable(\"password\") String password, Model model) {

    if (userManagement.authenticateUser(userName, password)) {
            String response = \"Logged Successfully\";
            return response;
        } else {
            String response = \"Invalid Username/Password, please try again!\";
            return response;
        }

    }
    
        您可以在这里做几件事: 不要从您的控制器返回视图,而是根据json中的响应返回json,适当地设置位置-
window.location = \'home.action\'
-这是使用ext-js的示例 让登录页面执行完整的帖子,而不是AJAX帖子。     

要回复问题请先登录注册