由于g:remoteFunction已被弃用,我应该使用什么呢?请举个例子。
答案 0 :(得分:4)
你应该使用自己的javascript AJAX函数,因为它们提供了更多的灵活性
实施例
曾经是:
<input type="button" value="go!" onclick="${g.remoteFunction( controller:'my', action:'go', params:[..] )}"/>
应该是(例如在JQuery
中):
<g:javascript>
function go(){
$.ajax({
url:'${g.createLink( controller:'my', action:'go', params:[..] )}',
data:{ param1:param1 }
});
}
</g:javascript>
<input type="button" value="go!" onclick="go()"/>
答案 1 :(得分:0)
只是详细说明Injecteers回答实际数据:{}是什么是向它发布信息所以可能与params发生冲突:[..]}:
<g:javascript>
function go(){
var javaScriptVariable='123'
$.ajax({
url:'${g.createLink( controller:'my', action:'go')}',
data:{
param1: "${params.params1}",
param2: javascriptVariable
}
});
}
</g:javascript>
data:{}
也可以是data: $('form').serialize();
,其中serialize函数会抓取所有表单元素并将其序列化为params以便传回。