Grails 更改操作名称时请求的资源不可用

Grails 更改操作名称时请求的资源不可用,grails,Grails,当单击元素时,我有一个ajax调用fire。ajax将转到控制器 function(){ $.ajax({ url: "/GAIA/RemoveCE/removeFlow", type: "get", data: {id:id}, cache: false, async: true,

当单击元素时,我有一个ajax调用fire。ajax将转到控制器

function(){

  $.ajax({
                    url: "/GAIA/RemoveCE/removeFlow",
                    type: "get",
                    data:  {id:id},
                    cache: false,
                    async: true,
                    success: function() {
                        window.location.reload()
                    },
                    error: function(xhr) {
                        console.log("ERROR");
                        console.log(xhr.readyState);
                        console.log(xhr.status);
                    }

                });
                event.preventDefault();
            });
def removeFlow(Long id){
    println id
}

def removeMachine(Long id){
    println id
}
我在这个控制器上有一个名为removeFlow的操作和一个名为removeMachine的操作

function(){

  $.ajax({
                    url: "/GAIA/RemoveCE/removeFlow",
                    type: "get",
                    data:  {id:id},
                    cache: false,
                    async: true,
                    success: function() {
                        window.location.reload()
                    },
                    error: function(xhr) {
                        console.log("ERROR");
                        console.log(xhr.readyState);
                        console.log(xhr.status);
                    }

                });
                event.preventDefault();
            });
def removeFlow(Long id){
    println id
}

def removeMachine(Long id){
    println id
}
当调用ajax触发removeFlow时,不会打印任何内容

调用ajax触发removeMachine时,正确打印机器id

在两次呼叫中收到的错误消息是404资源不可用,我理解这一点,因为我没有实现视图,也没有重定向。我不明白为什么什么都没有印出来

这是在Grails2.5.6上运行的

编辑:

这是当单击元素并触发ajax时,我在开发人员控制台上遇到的错误:

jquery-1.11.1.js?compile=false&encoding=UTF-8:9631找不到GET 404

如果我手动输入URL/GAIA/removeCE/removeFlow?id=41,我会得到以下结果:


:8080/GAIA/removeCE/removeFlow?id=41:1 GET 404 Not Found在Groovy action中,您需要呈现一些内容作为对ajax调用的响应,否则调用将成功,但它将返回404错误。 按如下方式更改代码

def removeFlow(Long id){
    println id
    // render anything string or ( List / Map as Json)
    render "Deleted Id:"+id+" successfully"
}


def removeMachine(Long id){
    println id
 // render anything string or ( List / Map as Json)
    render "Deleted Id:"+id+" successfully"
} 
//在ajax success中接收响应,如下所示

success: function( response) {
      console.log(response)
     //OR 
     alert(response);
 }
//使用link taglib在ajax中获取Url

url: '<g:createLink controller="removeCE" action="removeFlow"/>'

我明白您的意思,当我输入您的代码并将ajax调用更改为call removeMachine时,它会表现良好。然而,如果我调用removeFlow,它仍然会给我404 resource not available错误。这看起来真的很奇怪,我可能忽略了什么simple@jacob88美好的因此,不幸的是,问题仍然存在:-404 not found gets仅当您到达该资源的路径错误时,可能是拼写错误/代码未正确编译或上述情况。理想情况下,您应该有render语句来通知ajax调用,您可以重新启动应用程序一次。您只需从浏览器地址栏点击调用并发送参数,验证调用是否最有可能是服务器上没有资源,或者在不同的URL,首先用浏览器确认URL路径。