我使用带有grails remoteFunction标签的jquery库,以在发生鼠标悬停时进行AJAX调用。从我写的println中,我知道正在调用指定的 Action ,但是永远不会触发onSuccess函数。我检查了 Firebug ,并收到404错误。一般来说,我是AJAX和JS的新手,所以我现在可能忽略了一些非常明显的内容。这是我的代码段。

gsp:

<script type="text/javascript">

function change()
{

document.getElementById('changer').src='${resource(dir: "images/images", file: "heart_red.png")}';
}

function onSuccess(data){

    alert("Has hearted:");

}
<img class="user_profile_pic" src="${user.profilePicture}" onmouseover="${remoteFunction(controller:'user', action: 'hasHearted', onSuccess: 'onSuccess(data)', params:[userID: user.id])}"/>

常规:
    def hasHearted = {
    println "Recieved user ID: $params.userID"
    if(some condition...){
        [hasHearted: true] as JSON
    }
    else{
        [hasHearted: false] as JSON
    }

}

最佳答案

尝试在 Controller 中使用render方法:

render ([hasHearted: true] as JSON)

10-06 00:50