您要查找的页面使用了您输入的信息。返回该页面可能会导致您重复执行任何操作

时间:2019-05-20 10:18:32

标签: html spring-boot

我收到此消息:“您正在寻找要输入的二手信息的页面。返回该页面可能会导致您重复执行任何操作。是否要继续?”当我尝试刷新页面时。

这是我的控制器方法

@PostMapping("/savePost")
public String savePost(@RequestParam("content") String content,
        @RequestParam(value = "publicPost", required = false) String[] publicPost, ModelMap model) {
    boolean isPrivate = publicPost == null ? true : false;
    postService.savePost(userService.getLoggedUsername(), content, isPrivate);
    // Get user posts
    String username = userService.getLoggedUsername();
    if (username != null) {
        model.addAttribute("posts", postService.findUserPosts(username));
        return "createPost";
    } else {
        return "login";
    }
}

这是我的HTML表单

<form action="/savePost" method="POST">
 .....
 </form>

任何方法如何解决呢?

2 个答案:

答案 0 :(得分:0)

this W3 Schools页面的末尾,有一张表比较了用于存储和发送参数的HTTP GET和POST方法,第一行记录了您描述的浏览器功能,一种解决方案是使用GET方法在您的表单标签中。

答案 1 :(得分:0)

如果您要进行幂等操作,即可以向您发送任意次相同数据的操作,请使用PUT方法并相应地实现后端。 这也意味着您不能轻易使用HTML表单,而需要使用脚本将数据发送到后端(进行PUT调用)。 而在后端,这意味着您需要确保在两次发送相同数据时不要创建重复项,这通常意味着路径或消息正文包含要更新/创建的事物的ID。< / p>

如果您不想那样做,则当前行为是设计好的,并且通常会希望它能正常工作。