我收到此消息:“您正在寻找要输入的二手信息的页面。返回该页面可能会导致您重复执行任何操作。是否要继续?”当我尝试刷新页面时。
这是我的控制器方法
@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>
任何方法如何解决呢?
答案 0 :(得分:0)
在this W3 Schools页面的末尾,有一张表比较了用于存储和发送参数的HTTP GET和POST方法,第一行记录了您描述的浏览器功能,一种解决方案是使用GET方法在您的表单标签中。
答案 1 :(得分:0)
如果您要进行幂等操作,即可以向您发送任意次相同数据的操作,请使用PUT方法并相应地实现后端。 这也意味着您不能轻易使用HTML表单,而需要使用脚本将数据发送到后端(进行PUT调用)。 而在后端,这意味着您需要确保在两次发送相同数据时不要创建重复项,这通常意味着路径或消息正文包含要更新/创建的事物的ID。< / p>
如果您不想那样做,则当前行为是设计好的,并且通常会希望它能正常工作。