我想从成功函数的gsp页面中捕获从控制器checkWord()呈现的值。我不知道该怎么做。我的代码如下
<script>
function callAjax(){
var text= $('#word').val()
console.log(text);
$.ajax({
url:"checkWord",
type:"post",
// dataType:'json',
data:{text: text},
success:function(){
alert()
}
});
console.log(data + "hello")
}
</script>
行动
def checkWord(){
def temp=params.text
def query=Dictionary.findAllByWordLike(temp+'%');
render query as JSON
}
答案 0 :(得分:0)
由于您正在使用gsp作为视图,我会让grails remoteFunction来管理Ajax调用。
首先,控制器应该具有“withFormat”闭包,因此他知道如何根据被调用的方式呈现数据(以后可以以不同的方式调用它)
def checkWord(){
def temp=params.text
def query=Dictionary.findAllByWordLike(temp+'%');
withFormat {
json {
render query as JSON
}
}
}
然后从您的gsp中通过名称checkWord.json并使用remoteFunction调用控制器操作
我把你的JQuery #word搜索作为一个参数。
function callAjax(){
${remoteFunction(action: 'checkWord.json',
onSuccess: 'onSuccessFunction(data)',
params:'{text: \$(\'#word\').val()}'
)
}
}
然后你需要一个脚本函数,当ajax调用成功时它将被调用
function onSuccessFunction(data){
alert(data);
//console.log(data + "hello")
}
这应该有效。 (至少在我喜欢的方式) 希望它有所帮助。