私は非常に興味深い問題を抱えています。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 "/";
}
}
}