Ajax Jquery 调用重定向

2024-06-22

我是 ajax 的新手,我知道有人已经遇到过这个问题。 我有一个基于 Spring MVC 构建的遗留应用程序,它有一个拦截器(过滤器),可以将用户重定向到登录 每当没有会话时页面。

public class SessionCheckerInterceptor extends HandlerInterceptorAdapter {
 public boolean preHandle(HttpServletRequest request,
   HttpServletResponse response, Object handler) throws Exception {
  HttpSession session = request.getSession();

  // check if userInfo exist in session
  User user = (User) session.getAttribute("user");
  if (user == null) {
   response.sendRedirect("login.htm");
   return false;
  }
  return true;
 }
}

对于非 xmlhttp 请求,这工作正常..但是当我尝试在我的应用程序中使用 ajax 时,一切都变得很奇怪, 它无法正确重定向到登录页面。 作为检查的值

xhr.status = 200 textStatus = parseError errorThrown =“无效的 JSON -我的 HTML 登录页面的标记-

$(document).ready(function(){
        jQuery.ajax({
            type: "GET",
            url: "populateData.htm",
            dataType:"json",
            data:"userId=SampleUser",
            success:function(response){
             //code here
            },
         error: function(xhr, textStatus, errorThrown) {
                alert('Error!  Status = ' + xhr.status);
             }

        });
});

我检查了我的萤火虫,有一个 302 HTTP 响应,但我不知道如何捕获响应并将用户重定向到登录 页。这里有什么想法吗?谢谢。


JQuery 正在寻找一个json输入结果,但由于重定向是自动处理的,因此它将收到生成的html源你的login.htm page.

一种想法是让浏览器知道它应该通过添加一个重定向redirect变量到结果对象并在 JQuery 中检查它:

$(document).ready(function(){ 
    jQuery.ajax({ 
        type: "GET", 
        url: "populateData.htm", 
        dataType:"json", 
        data:"userId=SampleUser", 
        success:function(response){ 
            if (response.redirect) {
                window.location.href = response.redirect;
            }
            else {
                // Process the expected results...
            }
        }, 
     error: function(xhr, textStatus, errorThrown) { 
            alert('Error!  Status = ' + xhr.status); 
         } 

    }); 
}); 

您还可以在响应中添加标头变量,并让浏览器决定重定向到何处。在 Java 中,不要重定向,而是执行response.setHeader("REQUIRES_AUTH", "1")在 JQuery 中,您成功时会执行以下操作(!):

//....
        success:function(response){ 
            if (response.getResponseHeader('REQUIRES_AUTH') === '1'){ 
                window.location.href = 'login.htm'; 
            }
            else {
                // Process the expected results...
            }
        }
//....

希望有帮助。

我的回答深受启发这个线程 https://stackoverflow.com/questions/199099/how-to-manage-a-redirect-request-after-a-jquery-ajax-call如果您仍然遇到问题,这不应该留下任何问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ajax Jquery 调用重定向 的相关文章

  • 动态替换 css 文件(并将新样式应用到页面)

    我有一个页面有在加载名为 CSS 的标头中light css 我还有一个名为dark css 我想要一个按钮来交换页面的样式 css 文件中有 40 个选择器 有些在两个文件中不匹配 我怎样才能删除对light css用JS删除所有应用的样
  • 单击传单弹出窗口内的链接并执行 Javascript

    我已经准备好了一份传单地图并正在运行 它在地图上覆盖一系列多边形 通过 GeoJSON 并将弹出窗口附加到每个多边形 每个弹出窗口都显示有关该多边形的信息 我想在弹出窗口内有一个链接 单击该链接时 会运行一个 javascript 函数 该
  • 如何禁用 html 中特定元素的复制

    在这里 当选择 3 个元素时 我遇到了复制选项的问题 所有三个元素都被复制 但是 我有一个 Jquery 函数来禁用中间元素的复制 我如何在选择 3 个元素时禁用它 但是 如果我单独选择中间元素 它就不会复制 notcp bind cut
  • 获取更改前选择(下拉)的值

    我想要实现的目标是每当
  • Spring security @secure 不适用于角色层次结构

    我在 spring security 中使用角色层次结构spring securityConfig xml is
  • 在一次重绘/回流中进行多个 DOM 更新?

    我有一个表 其中填充了已连接用户的列表 列表本身不会经常更改 但每行上的其中一个内容是每秒更新一次的计时器 hh mm ss 为了更新计时器 我正在做这样的事情 var curTime new Date getTime 1000 timer
  • jQuery:通过子项进行动画、连续循环

    接近但还没有完全实现 我想让第一个子 div 显示几秒钟 向下滑动 通过定位 并淡出视图 然后下一个子 div 向上滑动并淡入视图 连续重复 在显示最后一个子项后循环返回 看起来我已经让循环正常工作了 尽管计数似乎将子 div 堆叠在一起
  • 捕获客户端验证失败

    我有一个基于 div 点击提交的表单 我还让它在单击时启动等待指示器 我试图找出是否有一种方法可以检测客户端验证是否失败 以便我可以删除等待指示器 在提交尝试后不再显示它 或者我可以手动调用客户端验证在我尝试提交之前 你可以试试 div c
  • jQuery Calendar:如何在特定日期添加可点击事件?

    我正在使用 jquery 完整日历http arshaw com fullcalendar http arshaw com fullcalendar显示会议 我只是想确认是否可以添加活动 让我们创建一个新会议 使用 php ajax 在特定
  • 使用 jQuery 禁用 CSS 继承

    有没有办法使用 jQuery 或通用 javascript 在块级别禁用 CSS 继承 例如 如果我通过 javascript 拉入外部资源 例如 Pastie org 它们将拥有自己的 CSS 而我的 CSS 会覆盖它们 我想将嵌入代码放
  • 克隆表行

    我怎样才能使用javascript 我假设 来克隆一个表格行 就像下图所示的那样 您可以将现场活动连接到所有按钮 例如 如果您给他们一类克隆 则以下内容将起作用 input clone live click function put jqu
  • jQuery:“$(this).next().next()”有效,但“$(this).next('.div')”无效

    好吧 我正在尝试将这组信息单独隐藏 这有效 arrow click function this next next slideToggle img class arrow src https via placeholder com 40 h
  • 将jQueryUI datepicker附加到div(显示位置错误)

    我在输入上使用 jQueryUI datepicker 默认情况下 jQueryUI 会附加 ui datepicker div to the body该文件的 有问题的输入位于屏幕上的 弹出 div 中 这意味着该 div 之外的任何点击
  • 暂停或停止整页而不破坏

    我有一个正常滚动的页面 页面上有一个锚点 它会弹出一个模式 我在其中初始化 fullpage js 到目前为止 效果很好 但是当用户单击关闭图标时 我希望模式窗口关闭 并使 fullpage js 暂停或停止 以便禁用全页滚动效果 除非用户
  • JQuery mouseover 函数多次触发

    我很长时间以来一直使用这种方法来为整个类 按钮等 设置事件 div bigButton mouseover function this style backgroundColor dfdfdf 然而 在进行一些测试时 我刚刚注意到 当将鼠标
  • 通过 jQuery ajax 将 JSON 对象数组发送到 MVC3 操作方法

    模型绑定器不支持 JSON 对象数组吗 下面的代码在发送单个 JSON 域对象作为 ajax post 的一部分时起作用 但是 当发送 JSON 域对象数组时 action 参数为 null var domains DomainName t
  • 多个引导模式的滚动问题

    我有一个带有大量信息的模态页面 因此您需要滚动 该模式包含指向第二个模式的链接 When I 打开模态 1 单击链接打开模式 2 模式 1 保持在后台 然后关闭模式 2 以便我回到模式 1 modal 1 失去滚动 仍然有一个滚动条 但它不
  • 如何使用 JQuery 创建新的 img 标签,并使用 JavaScript 对象中的 src 和 id?

    我从基本意义上了解 JQuery 但对它绝对是新手 并且怀疑这很容易 我在 JSON 响应中获得了图像 src 和 id 转换为对象 因此在 responseObject imgurl 和 responseObject imgid 中获得了
  • chrome中使用jquery的图像高度问题

    img height 回报0在 Chrome 中 但在 IE 和 Firefox 中返回实际高度 在 Chrome 中获取图像高度的实际方法是什么 正如 Josh 提到的 如果图像尚未完全加载 jQuery 将不知道尺寸是多少 尝试这样的操
  • 如何在网页上显示进度条直到网页完全加载?

    我想在网页中显示进度条 加载弹出窗口 直到页面完全加载 我的网页很重 因为它包含一个 HTML 编辑器 这是一个基于 jQuery 的 HTML 编辑器 需要很多时间才能完全加载 在加载时 我希望在页面上显示一个进度条 该进度条将在整个页面

随机推荐

  • 检索带参数的 LINQ to sql 语句 (IQueryable)

    我试图弄清楚是否有一种方法可以检索在数据库服务器上执行的 完整 sql 语句 我已经找到了一些东西 但它并不完全是我想要的 IQueryable
  • 更改 Android 上的导航栏图标颜色

    I need to change the navigation bar on android Just like the light variant on the right in the image below as given in h
  • 如何检查 x86_64 程序集中的寄存器是否为零 [重复]

    这个问题在这里已经有答案了 我正在尝试检查 x86 64 汇编代码中的值是否为零 我知道这通常包括cmp变体后跟一个jmp变体 但我不确定确切的使用说明 如果您之前刚刚使用过修改 ZF 的指令 只需检查该标志并使用JZ or JE 例如 a
  • RecyclerView 行为 - 打开/关闭键盘时变为空

    我已经实施了一个RecyclerView with SearchView and Filterable 所有课程来自v7 现在有这种行为很烦人 每当键盘打开或关闭时 RecyclerView变为空白 计数仍然正确 但视图为空 我的猜测 这与
  • 线程“main”中的异常 java.lang.NoSuchFieldError:工厂问题

    我正在尝试用 Java 测试 xml 到 excel 转换器 但出现以下异常 Exception in thread main java lang NoSuchFieldError Factory at org apache poi xss
  • Ruby 中救援的替代方案?

    好像我有begin rescue end我的代码中到处都是语句 这似乎不是正确的做法 谁能建议我如何捕获任何异常而不必将所有内容都放在里面begin rescue end 有什么方法可以让 Ruby 闭嘴并继续前进 即使出现异常也是如此 与
  • Windbg dump 命令失败,错误为 0x8007012b

    客户正在尝试捕获挂起的小型转储 他启动 WindDbg 并成功附加到该进程 WinDbg 显示其标题 Microsoft R Windows Debugger Version 6 11 0001 404 AMD64 Copyright c
  • 使用 jsoup 和 proguard 关闭强制关闭

    编辑 我的 PROGUARD 版本是 4 7 今天我尝试包括jsoup version 1 7 1 在我的android应用程序中 但这给我带来了很多麻烦 当我导出签名的apk with proguard 打开每当我的应用程序面临强制关闭问
  • 使用嵌套 if 子句向量化循环

    Problem 我正在尝试优化代码的运行时 并且之前曾提出过类似的问题 其中包括几个嵌套的 if 语句 向量化嵌套 if 语句 https stackoverflow com questions 38125770 vectorizing n
  • 如何在 WordPress 中使用 domPDF

    所以我想在我的 WordPress 帖子上有一个按钮 可以将帖子转换为 PDF 我找到了 domPDF 但我不知道如何用 WordPress 实现它 我知道使用插件会更容易 但我想不使用插件 有人可以向我解释一下如何实现这个吗 谢谢 你的问
  • 您可以通过 Dart 编辑器将编译器标志传递给 dart2js

    我想运行 no minify 构建 但不是从终端运行 我可以通过 Dart Editor IDE 本身来完成此操作吗 在 运行 gt 管理启动 下 您可以创建一个新的 Dart2js 启动并传入您想要的任何编译器标志
  • Angular 2 — 浏览网页,无需重新加载这些页面常用的组件

    您可以在这里找到一个示例应用程序 http ivan khludov com http ivan khludov com 这是我的根组件 import Component from angular core Component select
  • Sharepoint 列表转 PDF 报告

    我有一个 SharePoint 列表 我需要将其转换为文档 任何类型 并将其导出为 PDF 您对执行此操作的最佳方法有什么建议吗 我有 Crystal Reports 但不确定这是否是正确的用例 您可以使用对象模型或通过 Web 服务以编程
  • 如何配置 VS Code 的集成终端以使用正确的 Python 解释器

    TL DR 这个问题是NOT询问如何选择Python解释器此外 还可以运行或调试代码 这个问题是NOT询问任何有关的事情虚拟环境 或者如何激活虚拟环境 所有这些都在起作用 我觉得值得注意的是 下面的问题之前已经被问过 但由于对所问内容的困惑
  • 如何判断您的选择查询是否在事务内?

    在 Django 1 5 x 中 我有一个长时间运行的管理命令 其中选择查询返回过时的数据 我怀疑这是因为它们在数据库连接上较早启动的事务中运行 有没有办法判断查询是在事务中运行还是处于自动提交模式 这是我之前发布的问题的更集中的版本htt
  • bootstrap表格边框删除水平线

    我想删除引导程序表格边框的水平线并保留垂直线 我尝试了很多解决方案并做了很多研究 但我仍然找不到解决方案 div class container div class row div class col md 12 table class t
  • SQL Server Management Studio SSMS 尝试“保存到文件”而不是在 F5 上执行

    这种情况间歇性地发生 似乎与意外敲击按键有关 有什么想法导致这个吗 听起来您好像不小心从 结果到网格 的默认查询选项更改为 结果到文件 如果是这种情况 很容易修复 从查询菜单 gt 结果到 gt 结果到网格 OR 按 Ctrl D 尝试上述
  • 错误:分配关联数组时必须使用下标

    我想要 bash 中的哈希图等效项 键为string和价值观作为list的整数 所以 我写了下面的代码 declare A PUBS PUBS FEE 345 342 FOO 1 2 44 BAR 23 67 但是 我收到一条错误消息mus
  • 当响应为带有位置标头的 303 时,防止 xhr 重定向

    我收到带有位置标头的 303 响应 如何防止 XMLHttpRequest 重定向 下面是代码 var xhr new XMLHttpRequest xhr open GET api v1 test e target data machin
  • Ajax Jquery 调用重定向

    我是 ajax 的新手 我知道有人已经遇到过这个问题 我有一个基于 Spring MVC 构建的遗留应用程序 它有一个拦截器 过滤器 可以将用户重定向到登录 每当没有会话时页面 public class SessionCheckerInte