Grails post给出400错误
我在工作中学习圣杯,所以如果我看起来很无知,请容忍我 我通过IntelliJ设置了多个Grails应用程序,使用默认的Hibernate设置,Tomcat服务器,所有这些都非常简单。我通过终端创建了所有域模型、控制器等。一切都很好,当应用程序启动时,数据从BootStrap.groovy中填充。但是,当我尝试通过web界面(通过ajax或html post)发布内容时,它会返回:Grails post给出400错误,grails,Grails,我在工作中学习圣杯,所以如果我看起来很无知,请容忍我 我通过IntelliJ设置了多个Grails应用程序,使用默认的Hibernate设置,Tomcat服务器,所有这些都非常简单。我通过终端创建了所有域模型、控制器等。一切都很好,当应用程序启动时,数据从BootStrap.groovy中填充。但是,当我尝试通过web界面(通过ajax或html post)发布内容时,它会返回: POSThttp://localhost:8080/BookApp/book/save 400(错误请求) 绝对Gr
POSThttp://localhost:8080/BookApp/book/save 400(错误请求)
绝对Grails控制台中没有显示任何内容,即使所有内容都设置为log info 这就是它开始变得奇怪的地方。当我卷曲到save路径时,它返回一个201,数据很好地填充到数据库中 所以。。。我从哪里开始调试这个问题呢
编辑:如果您想查看源代码。在BookController和save.gsp视图中创建保存操作或将其重定向到另一个操作我知道这对任何人都没有帮助,但我最终删除了笔记本电脑上所有与Java相关的内容,从头开始。这是唯一有效的方法。您需要在控制器中创建一个save方法,并在UrlMappings中添加一个条目,以将帖子映射到该方法。由于此处的默认映射,在执行GET via curl时将得到201:
"/$controller/$action?/$id?(.${format})?"{
constraints {
// apply constraints here
}
}
添加以下内容:
"book/save" {
controller = "book"
action = [POST: "save"]
}
到UrlMappings.groovy
并将其添加到控制器中:
def save = {
<whatever you want here>
}
def save={
}
我不确定我是否太迟了,因为没有任何答案被接受。我最近在用ajax调用发布数据时遇到了同样的问题。
问题是,我在请求中发送了太多数据作为请求参数,而它应该是正文的一部分
就是这样。只需将您的信息作为正文的一部分发送,并使用->request.reader.text对grails操作进行提取即可
希望能有所帮助。通过捕获和比较每个实例中发布的有效负载开始调试。