SpringBoot项目后端重定向的问题

       最近在做一个单点登录功能,单点登录成功之后跳转到我们的页面,单点登录失败之后跳转到我们的登录页面,顺便将错误信息返回给我们的登录页,并将错误信息显示出来。如下图所示的样子:

单点登录流程

解决方式一

       后端代码进行重定向的时候我们可以将需要的信息拼接在URL后面:

 response.sendRedirect(LOGIN_URL + "?error=999");

       中文信息并没有拼接到URL中,中文在URL中会被转码,导致URL不够美观。前端页也需要对应正确的转码才能显示出正确的中文信息。
       前端需要写一个js轮询URL中是否有error这个参数,有的话将根据不同的error显示不同的错误信息,没有的话,就不显示。

解决方式二

       后端代码进行重定向的时候我们将相关信息放入header中:

 response.setHeader("error", "-1");
 response.setHeader("msg", URLEncoder.encode(msg, "UTF-8"));
 response.sendRedirect(LOGIN_URL);

       这种重定向到登录页面后,我们可以在HTTP响应的Header中获取到相对应的信息。不过相对应的,还是需要前端那边做相对应的处理的。

       现在所做的项目都是前后端分离,前端和后端的交流是只能通过接口进行交流。目前我只知道这两种比较简便的方式。如果大家有更好的方式可以告诉我,我们可以交流一下。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在Spring Boot后端中,重定向可以通过使用`RedirectView`或`RedirectAttributes`来实现。你可以在Controller的处理方法中返回`RedirectView`对象,并将重定向的目的地作为构造函数的参数传递给它。另一种方法是使用`RedirectAttributes`来设置重定向的目的地,并在方法参数中使用`@ModelAttribute`注解接收它。在重定向时,可以选择使用相对路径或绝对路径来指定目的地URL。 需要注意的是,在使用重定向时,被注解为`@RestController`或`@ResponseBody`的处理器将被视为后台API接口,只能返回JSON数据,失去了跳转的能力。因此,如果需要在后端进行重定向,应确保目标处理器不被这些注解所标记。 如果你想了解更多关于Spring Boot后端重定向的详细信息,可以参考中提供的链接。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [springboot后端开发Controller控制器时重定向和转发的关键字是什么](https://blog.csdn.net/dudadudadd/article/details/127832965)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [java版本springboot pdf 转图片项目](https://download.csdn.net/download/OptimisticDevelo/88267863)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值