angular - 使用 Spring Boot 从服务器端重定向到 Angular 路由

标签 angular spring-mvc spring-boot redirect angular-routing

我的应用程序由 2 个模块组成:Angular 5 uimodule 和 Spring Boot REST servermodule。我正在使用 frontend-maven-plugin 构建 uimodule 并将其资源文件复制到 META-INF/resources 文件夹中以帮助 Spring Boot发现他们。因此,这两个模块在同一域中运行(http://localhost:8080)。

现在我正在努力实现此工作流程的第 3 点:

1-用户在应用程序中注册(uimodule将用户的数据发布到服务器)

2-收到数据后,服务器模块向用户发送一封包含验证链接的验证邮件。

3-当用户单击链接时,服务器会验证用户并应将其重定向到登录页面。

/login 路由已存在于 uimodule 中。现在我的问题是:

如何将用户从服务器端重定向到登录路由?

我尝试过这个,但不起作用:

@Controller
@RequestMapping( "/activate" )
public class ActivationController {

  @GetMapping
  public String activate() {
    return "redirect:/login";
  }
}

当我单击定义的登录按钮(在 index.html 中)时,相同的路由(http://localhost:8080/login)可以工作,但不能当它来自服务器或我手动编写时可以工作(我收到 404 错误)

救命!

最佳答案

服务器不知道该网址,您必须将其重定向到您的 Angular 主页,您需要一个映射该网址的 Controller

@RequestMapping(value = "/login")
public String redirect() {
    return "index";
}

其中索引是您的 Angular 页面

关于angular - 使用 Spring Boot 从服务器端重定向到 Angular 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49723653/

相关文章:

java - 连接排空后打开新连接。谷歌云消息

java - 在 Spring 中解析包含 .jsp 的 URL 请求

java - Spring Boot/Spring Security 根据路径在多个认证提供者之间进行选择

java - Spring Data/Hibernate @ManyToOne 在不应该的情况下自动级联

javascript - 测试 Angular 可观察对象是否发出值或序列

css - Angular Material : snackbar is hidden behind component with high z-index

java - 如何配置 Spring REST 服务来处理多个版本?

java - 当实体具有多对多关系时如何使用条件查询?

unit-testing - 如何在 Angular2 中使用 MockBackend

angular - 在 Angular 中意外关闭 Material 对话框之前确认消息?