【问题标题】:Spring: redirect from POST method doesn't workSpring:从 POST 方法重定向不起作用
【发布时间】:2019-11-26 10:58:46
【问题描述】:

我正在尝试让我的 Spring 控制器接收 POST 请求。我想获取发布请求的正文并将其显示在网页上。我通过邮递员发送请求。我的控制器接收到它,但不知何故,当我像往常一样尝试重定向到另一个页面时,Spring 呈现 html 模板并将其发送回 Postman。

我的代码:

@GetMapping("/webhooks")
public String webhooks(Model model) {
    model.addAttribute("response", "webhooks");
    return "connected";

@PostMapping("/webhooks")
public String webhooks(String payload, Model model) {
    model.addAttribute("response", payload);
    return "connected";
}

我的 connected.html 模板:

<body>
<a href="/" >Home</a>
<h3>Connected!</h3>
<div>
  <button onclick="refreshToken()">Refresh Token</button>
  <br /><br />
  <button onclick="newCustomer()">Create new customer</button>
  <button onclick="invoice()">Create new invoice</button>
  <br />
  <div><code id="result" th:text="${response}"></code></div>
</div>
</body>

这是我在 Postman 窗口中看到的:

但我希望在浏览器中看到相同的表单(如图所示),而不是在 Postman 中。我想重定向到这个页面,而不是把这个页面发回 Postman。我在其他控制器中也有一些类似的方法,它们完全相同,但它们都能正常工作。

我做错了什么?提前谢谢你。

【问题讨论】:

  • 并在页面上显示请求正文 这是什么意思? 但我希望在我的浏览器中看到相同的表单,而不是在 Postman 中。 这是什么意思。确切地澄清你在这里的意思,因为它不清楚。您希望在 Pstman 中看到什么?
  • @AlanHay 我已经编辑了这个问题。其实看图就知道是什么问题了。
  • 我很困惑。您通过邮递员发送请求,但希望结果显示在浏览器中?
  • @AlanHay 我向我的应用程序发送请求。我想在浏览器中显示请求的正文,我的意思是,将其发送到 html 模板并在浏览器中打开此页面。我正在尝试重定向到“/connected”页面,但不是重定向 Spring 将此页面发送回 Postman。如何正确重定向到“/connected”?
  • 为什么要同时关联邮递员和浏览器?

标签: spring http spring-mvc postman


【解决方案1】:

我遇到了和你一样的问题,我尝试了不同的方法来解决这个问题,但没有一个对我有用。不过你可以试一试:

@GetMapping("/webhooks")
public RedirectView webhooks(Model model) {
    //Do what you want
    return new RedirectView("/connected");

@PostMapping("/webhooks")
public RedirectView webhooks(String payload, Model model) {
    //Do what you want
    return new RedirectView("/connected");
}

这对我没有用,但它可能会帮助你。您使用 Spring 中的 RedirectView 类并输入端点的 URL。

如果它对你有用,请告诉我!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-05
    • 1970-01-01
    • 2019-02-02
    • 2015-02-28
    • 1970-01-01
    • 2018-10-05
    • 1970-01-01
    相关资源
    最近更新 更多