UI に Grails + Twitter BootStrap を使用して小さなアプリケーションを開発しています。私のインデックスページには、ログインするためのフォームがあります:
<g:form controller="user" action="login" id="form-login">
<h2>Please, log in</h2>
<g:textField name="userName" placeholder="Email address"/>
<g:passwordField name="password" type="password" placeholder="Password"/>
<button id="submitConnection" type="submit">Connection</button>
</g:form>
ここに、私のユーザーコントローラーがあります:
def login(){
String userName = params.userName
String password = params.password
User user = userName ? User.findByUserName(userName) : null
//If login succeed
if(user?.password == password){
session.user = user
redirect(action: 'index')
}
//If login failed
else{
render 'Email or password incorrect.'
}
}
JQuery を使用して Ajax を使用しようとしています。私は Ajax/JQuery に慣れていないので、うまくやっているとは言えません。実際、送信ボタンをクリックして Ajax リクエストを実行したいと考えています。だから私は私の js でこれを書きました:
$('#submitConnection').click(function() {
var request = $.ajax({
url: "/user/login",
data: { userName: "dummy", password: "dummy"}
});
request.done(function ( data ) {
if( data ) {
console.log(data);
}
});
request.fail(function(jqXHR, textStatus) {
alert( "Request failed: " + textStatus );
});
});
ログインが div に「ログインに失敗しました」のようなエラー メッセージを入力できず、成功した場合はインデックスにリダイレクトするだけでよいと思います。これを行うにはJQueryを使用する必要があると思います。私が間違っている ?
Ajax に何かを送信するために、コントローラーで何を変更/追加する必要があるのか よくわかりません。
よろしくお願いします。
よろしくお願いします。