相关疑难解决方法(0)

无法在ajax中处理302重定向,为什么?

我有一个使用Forms Authentication在asp.net mvc中编写的后端服务器.未对用户进行身份验证时,服务器将自动将302重定向发送到"登录"操作并返回"登录"页面.

在客户端,我有一个项目列表.此列表仅供经过身份验证的用户访问.在页面上,我有一个使用Ajax刷新列表的按钮(jQuery的$ .ajax函数).

现在,问题是当身份验证票超时并且用户单击"刷新"按钮时:

  • 我的函数发送一个ajax请求来获取刷新列表
  • 服务器检测到身份验证票证无效并发出302重定向.
  • 浏览器自动处理302响应并强制我的ajax函数向Login操作发送另一个ajax请求,最终结果是状态为200的HTML.我的脚本很混乱,因为列表也是状态为200的HTML.

我想是当身份验证票证超时和用户点击刷新按钮,我应该能够检测并显示一条消息,询问用户登录.

我尝试通过在Login操作中添加自定义标头(IS_LOGIN)来解决此问题,并在我的ajax响应中检查它.但这不是一个好的解决方案.

所以我的问题是:

  • 处理这个问题的最佳方法是什么?
  • 为什么浏览器不让我们的脚本处理302响应?并且只是自动强制我们的ajax创建另一个请求.这是浏览器或jquery库的问题?有什么理由吗?(安全,...)

谢谢你的回复.

javascript ajax asp.net-mvc jquery http-headers

41
推荐指数
1
解决办法
4万
查看次数

标签 统计

ajax ×1

asp.net-mvc ×1

http-headers ×1

javascript ×1

jquery ×1