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

时间:2017-09-13 10:04:55

标签: grails

单击一个元素时,我有一个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();
            });

我在此控制器上有一个名为“removeFlow”的动作和一个名为“removeMachine”的动作。

def removeFlow(Long id){
    println id
}

def removeMachine(Long id){
    println id
}

当调用ajax来触发“removeFlow”时,不会打印任何内容。

当调用ajax触发“removeMachine”时,id正确打印。

在两次调用中收到的错误消息都是404 resoure我不明白,因为我没有实现视图,我没有重定向。我不明白为什么没有打印出来。

这是在grails 2.5.6上运行

编辑:

这是我在开发者控制台上遇到的错误(当点击元素并触发ajax时):

jquery-1.11.1.js?compile = false& encoding = UTF-8:9631获取http://localhost:8080/GAIA/removeCE/removeFlow?id=41&_=1505308707652 404(未找到)

如果我手动输入网址(/ GAIA / removeCE / removeFlow?id = 41),我会得到:

:8080 / GAIA / removeCE / removeFlow?id = 41:1获取http://localhost:8080/GAIA/removeCE/removeFlow?id=41 404(未找到)

1 个答案:

答案 0 :(得分:0)

在Groovy操作中,您需要呈现某些内容作为对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: function( response) {
      console.log(response)
     //OR 
     alert(response);
 }

//使用链接taglib

在ajax中获取Url
url: '<g:createLink controller="removeCE" action="removeFlow"/>'