我有非常有趣的問題。我正在爲我的Web應用程序登錄頁面,並通過AJAX發送登錄請求。如果成功,我想轉發用戶到另一個頁面。Spring MVC 3,使用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 "/";
}
}
}
你可能想看看Spring Security的,這是SpringSource的認證/授權開發了一個成熟的框架。 – abalogh 2011-06-14 10:54:00
謝謝,它看起來像一個很好的框架來保護你的應用程序。但是我仍然需要這個轉發才能工作:) – 2011-06-14 11:06:12
如果你使用Spring Security,你將不需要處理這個問題,因爲它會被自動處理。 – abalogh 2011-06-14 11:24:21