【问题标题】:How can I get grails remoteFunction to work?如何让 grails remoteFunction 工作?
【发布时间】:2012-04-01 03:56:45
【问题描述】:

我的 gsp 中有以下代码

<select onChange="${remoteFunction(action:'superior', controller:'employee', params: '\'name=\' + this.value')}">
    <option>first</option>
    <option>second</option>
</select>

具体来说,这段代码在我的 _form.gsp 文件中。 EmployeeController 中的动作如下:

    def superior() {
    println 'in here'
    println 'these are the params: ' + params
}

这可能看起来很荒谬,但我的目标只是能够调用我的远程操作并传递选定的值。但我看到控制台上没有打印任何内容。如果我直接输入网址如下

app-name/employee/superior

我在输出中看到了我的打印语句。那么我在这里错过了什么?我基本上遵循了如何从 grails 文档 (http://grails.org/doc/2.0.x/ref/Tags/remoteFunction.html) 进行设置,并且我有 JQuery 插件。 如果我在 onChange 事件(例如警报)上使用简单的 javascript 函数,它可以正常工作。所以我确定我的浏览器没有关闭 javascript,我实际上已经用几个浏览器测试了这个。 我很确定这是我想念的非常简单的东西。提前致谢。

【问题讨论】:

    标签: javascript grails groovy


    【解决方案1】:

    对我来说,这个 sn-p 在 firefox 和 chrome 中运行良好。所以我猜你的页面上有一个一般的javascript错误。用萤火虫检查这个。如果没有错误,请仔细检查为您的选择框的 onchange 标签生成的代码。

    【讨论】:

    • 我用firebug检查了javascript,没有看到错误。这是为 onchange jQuery.ajax({type: "POST", data: "name=" + this.value, url: "/myapp/employee/superior", success: function (data, textStatus) {}, error: function (XMLHttpRequest, textStatus, errorThrown) {}}); 生成的 javascript 为了测试这一点,我实际上创建了一个全新的 grails 应用程序,创建了只有名字和姓氏的员工域类,然后生成了视图和控制器。然后我将选择代码块粘贴到我的 _form.gsp 中,并将操作粘贴到我的控制器中并进行测试。我错过了一步吗?
    • 发生了 HTTP 请求?你能用萤火虫检查吗?如果有,那么您将在控制台选项卡中看到它。
    • 感谢您的提示。 Firebug 说“JQuery 未定义”所以我在网上四处寻找有类似错误的其他人。我必须将以下内容添加到我的 main.gsp 文件的头部。 &lt;g:javascript library="jquery" plugin="jquery" /&gt; 然后我在控制台上看到了我的输出。所以感谢你从另一个角度帮助我调试,我只是从我的源代码调试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多