Spring MVC控制器重定向后无法跳转页面问题排查
问题分析与解决
问题核心是你通过AJAX/前端异步请求调用了POST接口,而非普通表单提交:
- 异步请求会接收后端的重定向响应,但不会触发浏览器自动跳转,所以页面停留在原页面。
- 直接访问URL正常,说明
ViewDocController的逻辑、视图路径本身没有问题。
解决方法
方案一:改用普通表单提交
去掉前端的异步请求逻辑,使用原生<form>标签提交数据,浏览器会自动处理后端返回的重定向响应,完成页面跳转。方案二:异步请求下手动处理跳转
如果必须保留异步请求,需要前后端配合:- 后端修改返回值,返回包含跳转地址的JSON:
@PostMapping("/create") @ResponseBody public Map<String, String> create(@RequestBody String dataToSave) throws JsonProcessingException { // 数据库操作逻辑... Map<String, String> result = new HashMap<>(); result.put("redirectUrl", "/myProject/journals/doc"); return result; } - 前端在请求成功的回调中,手动执行页面跳转:
// 示例:axios请求 axios.post('/myProject/journals/doc/create', data) .then(res => { window.location.href = res.data.redirectUrl; });
- 后端修改返回值,返回包含跳转地址的JSON:
内容的提问来源于stack exchange,提问作者shurikin
相关产品推荐
相关产品推荐

