HTTP重定向(302)在ajax调用期间的工作方式
我被要求在旧的Java7/Struts1Web应用程序上实现“每个帐户一个会话”限制 在开发过程中,我会有一种我无法真正理解的行为 因此,如果有一个帐户“account-A”当前使用会话“session-1234”登录,然后同一个帐户使用不同的会话“session-4567”登录,则会话“session-1234”在该会话执行的下一个请求中被标记为无效 在“会话1234”的无效过程中,步骤之一是将客户端重定向(302)到登录页面 现在我不明白了 如果请求是以“同步”模式发出的,那么一切都会按预期进行 用户点击一些链接HTTP重定向(302)在ajax调用期间的工作方式,ajax,http,redirect,Ajax,Http,Redirect,我被要求在旧的Java7/Struts1Web应用程序上实现“每个帐户一个会话”限制 在开发过程中,我会有一种我无法真正理解的行为 因此,如果有一个帐户“account-A”当前使用会话“session-1234”登录,然后同一个帐户使用不同的会话“session-4567”登录,则会话“session-1234”在该会话执行的下一个请求中被标记为无效 在“会话1234”的无效过程中,步骤之一是将客户端重定向(302)到登录页面 现在我不明白了 如果请求是以“同步”模式发出的,那么一切都会按预期
我的问题不是如何解决这个“问题”,而是真正了解它为何会出现这种情况。如果您使用的是编程客户端,则有两个主要选项:
授权
标题,让服务器发出401
,告诉客户端他们的令牌现在无效302
响应和Location
标题,并对其进行响应#2基本上是一种让你模仿标准浏览器行为的黑客#1更适合于API。我很感谢您的评论,但我真正想了解的是,当ajax发出客户端请求时,服务器重定向(302)客户端过程的内部工作原理。正如我所说,如果请求是由ajax发出的,然后服务器重定向,那么所发生的是页面(URL)不会更改,重定向的内容显示在同一页面上。非常混乱!!!