You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot注册接口重定向失败,报ERR_UNSAFE_REDIRECT错误求助

问题解决:注册成功后重定向出现ERR_UNSAFE_REDIRECT错误

问题原因

浏览器安全策略禁止从HTTP协议(你的后端服务地址http://localhost:8081)重定向到file协议的本地文件,这种跨协议跳转被判定为不安全操作,因此触发ERR_UNSAFE_REDIRECT错误。

解决方案

方案1:将前端文件纳入Spring Boot静态资源管理(推荐)

把index.html放到Spring Boot项目的src/main/resources/static目录(无此目录则新建),让前端文件通过HTTP协议访问,消除跨协议跳转的安全限制。

修改RegistrationController中的重定向代码:

@PostMapping(consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public RedirectView registerSubmit(Users users) {
    Users user = userRepository.save(users);
    // 重定向到项目静态资源中的index.html,可根据实际路径调整锚点
    return new RedirectView("/index.html#!");
}

方案2:前端AJAX提交+本地跳转

如果必须保留前端文件在本地桌面路径,放弃后端重定向,改用前端AJAX提交表单,提交成功后直接在前端页面跳转。

示例前端代码(假设表单id为registerForm):

<form id="registerForm">
    <!-- 表单字段:firstName、lastName、email、password等 -->
    <button type="submit">注册</button>
</form>

<script>
document.getElementById('registerForm').addEventListener('submit', async function(e) {
    e.preventDefault(); // 阻止默认表单提交行为
    
    const formData = new FormData(this);
    // 提交表单到后端接口
    await fetch('http://localhost:8081/register', {
        method: 'POST',
        body: formData
    });
    
    // 提交成功后跳转到本地文件路径
    window.location.href = 'file:///C:/Users/timis/Desktop/programare/curs%20java/Proiect/frontend/index.html#!';
});
</script>

注意:此方案需处理跨域问题,可在RegistrationController类上添加@CrossOrigin(origins = "*")(开发环境临时使用,生产环境需限制具体域名)。

内容的提问来源于stack exchange,提问作者Paul Timis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 13:27:19