我在rest-api配置文件中使用Grails 3.1.9。
创建模型和 Controller 后(通过grails CLI)并启动了应用程序。
我无法通过邮递员/ curl 等创建POST。

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

http://localhost:8080/mymodel/create

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

ps。我的 Controller 上有这个:
    static allowedMethods = [save: "POST", update: "PUT", delete: "DELETE"]

为什么会这样?

最佳答案

您应该通过POST调用save()方法,而不是通常用于显示所创建元素的表单 View 的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

关于grails - Grails 3.1.9:无法识别POST,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38600787/

10-14 03:50