我使用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]
为什么会这样?
答案 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")