コントローラーにアクションがあります
def deleteFiling={
obj.removeFiling()
redirect(action:"list")
}
これは gsp から呼び出されます:
<g:link action="deleteFiling" id="${filingInstance.id}"> <img src="${resource(dir:'images',file:'trash.gif')}" title="Delete" />
DBクエリを実行し、成功メッセージとともにメインページにリダイレクトします。
したがって、ポップアップ確認メッセージのようなJavaScriptの機能を実行する別のアクションを呼び出すためにgspが必要であり、それが完了すると、そのアクションdeleteFilingを呼び出して実行します。
だから私はextjsでこのようなことをしています:
Ext.MessageBox.show({
title:'Commit Confirmation',
msg: 'You are about to <strong>Delete</strong> the entire <strong>Filing</strong>. This \n action cannot be reversed within the form PF application. \n\nAre you sure you want to Proceed',
buttons: Ext.MessageBox.YESNO,
fn: processDelete,
icon: Ext.MessageBox.QUESTION
});
function processDelete(btn, text){
$.ajax({
url : appContextRoot + '/filing/deleteFiling'
//success:mySuccessFunction
});
}
私が抱えている問題は、ajax 呼び出しを介してアクションを呼び出すと、クエリは実行されますが、リダイレクトは行われないことです。
しかし、アクションを gsp から直接呼び出すと、リダイレクトが機能します。私の質問は、Java スクリプトから ajax 呼び出しを使用してアクションを呼び出すことと、gsp から直接呼び出すことの違いは何ですか?