Angular 响应重定向(302)在角度模式下不工作
我为angular的SSO(单点登录)设计了一个登录页面,并为spring boot framework单独开发的登录服务设计了一个登录页面 在angular应用程序中,当提交登录表单时,HttpClient模块使用PostHttpMethod调用登录服务。在登录服务中,如果用户名和密码正确,则在登录服务的结果中,将响应状态设置为302,并将特定URL添加到响应的标题中。在这个场景中,我希望浏览器重定向到特定的URL,但这并没有发生 我在Firefox中跟踪请求和响应,与所附图片相同Angular 响应重定向(302)在角度模式下不工作,angular,rest,httprequest,Angular,Rest,Httprequest,我为angular的SSO(单点登录)设计了一个登录页面,并为spring boot framework单独开发的登录服务设计了一个登录页面 在angular应用程序中,当提交登录表单时,HttpClient模块使用PostHttpMethod调用登录服务。在登录服务中,如果用户名和密码正确,则在登录服务的结果中,将响应状态设置为302,并将特定URL添加到响应的标题中。在这个场景中,我希望浏览器重定向到特定的URL,但这并没有发生 我在Firefox中跟踪请求和响应,与所附图片相同 发送登录
我更改了响应的位置头,看到重定向没有执行(只是登录请求和选项请求完成),下图是请求跟踪。
我怀疑您的请求是XHR请求。如果是这样,浏览器将在处理程序中跟随它们,但不会将整个页面导航到重定向位置 如果要模拟发送重定向以请求整页时发生的情况,可能需要更改后端,使其返回一个200,其中包含负载中原始重定向的目标位置,然后将页面重新加载到该位置(类似于
window.location=payload.redirectLocation
)
您还可以取消重定向,让后端根据身份验证成功情况返回200或401,然后使用angular router导航。重定向自动发生,您可以在网络跟踪中的调用中看到它。正如我所说,如果它们是XHR请求,它们不会重新加载页面,您无法解决这个问题,这就是浏览器的工作方式。XHR是可以并行执行的异步请求。。。如果它们中的几个发送重定向,并且浏览器每次收到302时都重新加载,会发生什么情况?