【问题标题】:What is the simplest way to send form data to spring boot?将表单数据发送到 Spring Boot 的最简单方法是什么?
【发布时间】:2020-10-02 15:57:09
【问题描述】:

我尝试了几种不同的方法,但一直收到 There was an unexpected error (type=Forbidden, status=403) 错误。这是html方法:

HTML

    <form method="post" action="/forms">
        <p>Enter User Id : <input type="text" name="userId"/></p>
        <p><input type="submit" value="Submit"></p>
    </form>  

  

这里是javascript/jquery方法:

javascript 和 jquery

    <form method="post" action="postPosts()">
        <p>Enter User Id : <input type="text" name="userId"/></p>
        <p><input type="submit" value="Submit"></p>
    </form>        

在脚本部分:

  var postPosts = function() {
      console.log("Im in postPosts");
      $.post("/posts", function(data) {
          console.log(data);
      })
  }

console.log 甚至没有被击中,所以在此之前就发生了错误。有什么建议吗?

【问题讨论】:

  • 将 action="postPosts()" 更改为 onsubmit="postPosts()" 如果您使用的是 ajax,您还需要防止默认提交表单。

标签: javascript html jquery forms


【解决方案1】:

我猜最简单的方法就是像这样使用 HTML:

<form method="post" action="posts">
    <label>Enter User Id : <input type="text" name="userId"/></label>
    <button>Submit</button>
</form> 

&lt;form method="post" action="/posts"&gt; 行表示表单将向 post 路由发送 POST 请求。

所以基本上这不是导致代码出现问题的原因,可能是您的服务器中没有处理该路由,这就是您看到 403 error 的原因。

HTTP 403 Forbidden client 错误状态响应码表示服务器理解请求但拒绝授权。

【讨论】:

  • /post 是多余的。 post 可以。
  • Sarr,很遗憾,你的建议也有同样的错误。 @Spectric - /posts 是博客发布网络服务的 URI
  • 我编辑了我的答案。根据您的错误,您实际上并没有在服务器端代码中处理该路由
  • 是的,我也是这么想的,但错误似乎在它到达服务器之前就已经发生了。 javascript 方法有一行“console.log("Im in postPosts");"不输出任何东西。
  • 没有广泛支持设置为 JavaScript 函数的表单操作。它可能不会调用 JS 示例中的 JS 函数,而是会尝试在服务器中找到类似的路由
猜你喜欢
  • 2011-08-14
  • 2011-01-15
  • 1970-01-01
  • 2022-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-30
  • 1970-01-01
相关资源
最近更新 更多