Grails 3.1.9:POST无法识别

时间:2016-07-26 22:18:57

标签: grails grails-3.1

我使用Grails 3.1.9和http://localhost:8080/mymodel/create 个人资料。 创建模型和控制器(通过grails CLI)并启动应用程序。 我无法通过Postman / Curl等创建POST。

如果我尝试直接调用save方法,例如:

    static allowedMethods = [save: "POST", update: "PUT", delete: "DELETE"]

一切正常。但是如果我尝试通过POST调用它,则永远不会调用方法save()(索引是默认操作)。

P.S。我的控制器上有这个:

for i in iter_list:
    for j in range(3):
        for key, value in i.iteritems():
            print key, value[j]

为什么会这样?

2 个答案:

答案 0 :(得分:1)

您应该通过POST调用save()方法,而不是通常用于显示已创建元素的表单视图的create()。所以改为执行

curl -H "Content-Type: application/json" -X POST -d '{"foo":"bar"}' http://localhost:8080/mymodel/create

使用:

curl -H "Content-Type: application/json" -X POST -d '{"foo":"bar"}' http://localhost:8080/mymodel/save

当然,如果您正确使用网址映射而不是http://localhost:8080/mymodel/save,则应使用简单的http://localhost:8080/mymodel

答案 1 :(得分:0)

当然这是一个错误,我在github上打开一个问题。像一样关闭而不是错误

我忘了添加UrlMappings.groovy以下一行:

  "/foos"(resources:"foo")

https://github.com/grails/grails-core/issues/10067