首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >尝试提交表单Rocket Rust时出现错误422

尝试提交表单Rocket Rust时出现错误422
EN

Stack Overflow用户
提问于 2020-05-04 03:00:30
回答 2查看 437关注 0票数 1

我正在尝试在Rocket Rust中创建一个表单来创建帖子(我还没有访问db )。当我尝试提交表单时,我得到了错误422。

错误:

代码语言:javascript
复制
POST /new_post application/x-www-form-urlencoded:
    => Matched: POST /new_post (new_post_form)
    => Error: The incoming form failed to parse.
    => Outcome: Failure
    => Warning: Responding with 422 Unprocessable Entity catcher.
    => Response succeeded.

处理程序代码:

代码语言:javascript
复制
#[post("/new_post", data="<form>")]
fn new_post_form(form: Form<NewPostForm>) -> Flash<Redirect>  {
    let form = form.into_inner();
    if form.body.is_empty() {
        Flash::error(Redirect::to("/new_post"), "NoBodyError");
    }
    if form.name.is_empty() {
        Flash::error(Redirect::to("/new_post"), "NoNameError");
    }
    if form.name.is_empty() && form.body.is_empty() {
        Flash::error(Redirect::to("/new_post"), "NoNameBodyError")
    } else {
        Flash::error(Redirect::to("/new_post"), "NoNameBodyError")
    }
}

表单结构:

代码语言:javascript
复制
#[derive(FromForm)]
pub struct NewPostForm {
    pub name: String,
    pub body: String
}

HTML表单:

代码语言:javascript
复制
<form action="/new_post" method="post">
  name:<input type="text" name="name" id="name">
  Body:<input type="text" name="body" id="body">
  <button type="submit" name="button"></button>
</form>

附注:我认为问题出在HTML表单,而不是Rust。如果问题出在Rust中,它会给出另一个错误。

EN

Stack Overflow用户

发布于 2020-05-07 21:53:13

问题出在HTML表单中。当我删除name="button"时,表单开始工作。

更新后的表单:

代码语言:javascript
复制
<form action="/new_post" method="post">
  name:<input type="text" name="name" id="name">
  Body:<input type="text" name="body" id="body">
  <button type="submit"></button>
</form>
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61580051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档