gpt4 book ai didi

java - 成功提交表单数据后如何重定向用户?

转载 作者:行者123 更新时间:2023-11-30 05:32:43 29 4
gpt4 key购买 nike

我有一个网站,您可以通过该网站创建 bundle 并向其中添加自定义或预定义任务。

1]

一切正常,我可以随时更改所有这些字段。一旦您认为所有这些字段都正常,您就必须单击“保存”按钮。单击它后,将通过多种方法验证这些字段。如果所有字段均已成功验证,Ajax 会向我的 Spring Controller 发送一个 post 请求,然后该 Controller 将所有内容存储到数据库中。之后,我想将用户重定向到显示所有现有 bundle 的页面。

enter image description here

我已经尝试过这样做:

@RequestMapping(value = "/bundle", method = RequestMethod.POST, consumes = {"application/octet-stream", "multipart/form-data"})
public void bundle(MultipartHttpServletRequest request,
HttpServletResponse response) throws IOException {

// Code to store bundles to a database.

// Redirect
response.setHeader("Location", "http://localhost:8080/bundles");
response.setStatus(302); //302 Found

// I have also tried to replace above two statements with this
response.sendRedirect("http://localhost:8080/bundles");
}

上面的代码确实执行并且请求被发送到/bundles

enter image description here

但我似乎卡在初始页面上,没有进行重定向。

最佳答案

我也遇到了和你一样的问题。我通过使用 Angular 在前端进行重定向解决了这个问题。

您可以在 JavaScript 中使用 HTTP 请求的答案,然后从那里重定向。

我的服务器端代码:

@PostMapping(AdminToolConstants.MAPPING_CHECK_USER)
public ResponseEntity checkUser(HttpServletResponse response, @RequestBody UserDto userDto) throws IOException{
if (userService.checkUser(userDto)) {
return new ResponseEntity(HttpStatus.OK);
} else {
return new ResponseEntity(HttpStatus.BAD_REQUEST);
}
}

客户端 JavaScript:

angular.module('admintool.services', []).factory('UserService', ["$http", "CONSTANTS", function($http, CONSTANTS) {
var service = {};
service.checkUser = function (userDto) {
return $http.post(CONSTANTS.checkUser, userDto).then(function (value) {
window.location.href = "/";
}).catch(function (reason) { window.location.href = "/register" });
};
return service;
}]);

.then内部,例如,登录成功时我会重定向用户,如果登录不成功,我会在.catch内部重定向用户。

关于java - 成功提交表单数据后如何重定向用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57218656/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com