您好我正在尝试使用附加参数的JQUery来调用网址。参数的值来自页面对话框中的文本字段。当我调用url时参数中没有填充值(即url里面的if),它执行正常,但是当我在对话框中输入值并运行它时,给我groovy.lang.MissingMethodException。
我在两种情况下都会提醒网址,并且值会正确显示
我也在控制器def runUserReport中相应地处理3个参数
这是代码片段
function runJasperReport() {
var myurl="";
var from_date=$('#from_date').val();
var to_date=$('#to_date').val();
var user_id=$('#user_id').val();
if(!from_date ||!to_date ||!user_id)
{
myurl='/gra/reports/runUserReport?fromdate=&todate=&userid=';
}
else{
myurl='/gra/reports/runUserReport?fromdate='+from_date+'&todate='+to_date+'&userid='+user_id+'';
}
alert(myurl);
jQuery.ajax({
url: myurl,
dataType: 'html',
timeout: 3000,
beforeSend: function() {
jQuery('#demo').html('<center><div style="width: 70px; height: 100px; display: inline-block;margin-top: 120px;"></div></center>')
},
success:function(data,textStatus){
jQuery('#demo').html(data);
},
error:function(XMLHttpRequest,textStatus,errorThrown){}
});
return false;
收到错误:
groovy.lang.MissingMethodException: No signature of method: gra.ReportsController.$() is applicable for argument types: (gra.ReportsController$_closure8_closure9) values: [gra.ReportsController$_closure8_closure9@22d90078]
Possible solutions: is(java.lang.Object), any(), use([Ljava.lang.Object;), any(g
roovy.lang.Closure), getG(), wait()
答案 0 :(得分:2)
您对网址的请求
/gra/reports/runUserReport
告诉grails应该有reportsController
方法runUserReport
。但是,grails说网址正在调用方法$()
,即您的请求看起来像
/gra/reports/$()
在您设置网址并触发请求之间会发生一些事情。查看webkit / firebug以及发送的ajax,并验证该url是否符合您的想法。