gpt4 book ai didi

angular - 响应重定向(302)在 Angular 不起作用

转载 作者:行者123 更新时间:2023-12-03 23:52:20 25 4
gpt4 key购买 nike

我通过angular设计了一个SSO(Single Sign-On)的登录页面,以及由spring boot框架单独开发的登录服务。

在 Angular 应用程序中,当提交登录表单时,通过 HttpClient 模块使用 post-HttpMethod 调用登录服务。在登录服务中,如果用户名和密码正确,则在登录服务的结果中,将响应状态设置为 302,并在响应的 header 中添加特定的 URL。在这种情况下,我希望浏览器重定向到特定的 URL,但这并没有发生。

我在Firefox中跟踪请求和响应与附图相同
Firefox network tab .

  • 发送登录后请求,响应为 302,头部位置为服务器响应中设置的特定 URL
  • 浏览器向响应头的位置 URL 发送选项请求,得到 200 结果
  • 浏览器向目标URL发送get请求(header location为特定URL),此时浏览器没有打开目标URL,只是响应200。


  • 我更改了响应的 Location header ,发现重定向没有做(只是登录请求和选项请求完成),下图是请求跟踪。
    Firefox network tab

    最佳答案

    我怀疑您的请求是 XHR 请求。如果是这样,浏览器会在处理程序中跟随它们,但不会将整个页面导航到重定向位置。

    如果您想模拟为整个页面请求发送重定向时发生的情况,您可能需要更改后端,以便它返回 200,其中包含有效负载中原始重定向的目标位置,然后将页面重新加载到该位置位置(类似于 window.location = payload.redirectLocation )。

    您还可以摆脱重定向,让后端根据身份验证成功返回 200 或 401,然后使用 Angular 路由器导航。

    关于angular - 响应重定向(302)在 Angular 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55640610/

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