如何在 jQuery Ajax 调用后管理重定向请求

2023-12-25

我在用着$.post()使用 Ajax 调用 servlet,然后使用生成的 HTML 片段替换div用户当前页面中的元素。但是,如果会话超时,服务器会发送重定向指令以将用户发送到登录页面。在这种情况下,jQuery 正在取代div元素与登录页面的内容相结合,迫使用户的眼睛目睹了一个确实罕见的场景。

如何使用 jQuery 1.2.6 管理来自 Ajax 调用的重定向指令?


我阅读了这个问题并实施了有关设置响应的方法HTTP 状态码到 278 以避免浏览器透明地处理重定向。尽管这有效,但我还是有点不满意,因为它有点像黑客。

经过更多的挖掘后,我放弃了这种方法并使用JSON http://en.wikipedia.org/wiki/JSON。在这种情况下,对 AJAX 请求的所有响应都有状态码200 并且响应正文包含在服务器上构造的 JSON 对象。然后,客户端上的 JavaScript 可以使用 JSON 对象来决定它需要做什么。

我有和你类似的问题。我执行一个 AJAX 请求,该请求有 2 种可能的响应:一种是重定向浏览器到一个新页面replaces当前页面上的现有 HTML 表单与新表单。执行此操作的 jQuery 代码如下所示:

$.ajax({
    type: "POST",
    url: reqUrl,
    data: reqBody,
    dataType: "json",
    success: function(data, textStatus) {
        if (data.redirect) {
            // data.redirect contains the string URL to redirect to
            window.location.href = data.redirect;
        } else {
            // data.form contains the HTML for the replacement form
            $("#myform").replaceWith(data.form);
        }
    }
});

JSON 对象“data”在服务器上构造为具有 2 个成员:data.redirect and data.form。我发现这种方法要好得多。

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

如何在 jQuery Ajax 调用后管理重定向请求 的相关文章

  • 将音频与视频流合并 Node.js

    我正在创建 YouTube 视频下载器并且正在使用ytdl core库 它无法下载带有音频的高质量视频 因为 youtube 将其放在另一个文件中 但我需要将其全部下载到一个文件中 我已经这样做了 app get download asyn
  • 如何在 d3 js 中突出显示从根到选定节点的路径?

    我使用 d3 js 创建了一棵树 现在我创建了一个下拉菜单 其中包含树中所有节点的列表 现在 从下拉菜单中选择一个节点时 我想突出显示从根到该特定节点的路径 这个怎么做 首先创建一个 flatten 函数 它将分层数据变成一个 n 数组 f
  • 创建 Cookie 时需要帮助

    我有一个名为yes和另一个名叫no
  • 在 MVC Razor 中的 C# 和 Javascript 之间共享常量

    我想在服务器上的 C 和客户端上的 Javascript 中都使用字符串常量 我将常量封装在 C 类中 namespace MyModel public static class Constants public const string
  • Ember.JS - 如何在同一页面中使用多个模型、控制器和视图?

    我主要了解 Ember JS 的基础知识 大多数示例实际上只处理单个控制器和模型以在页面上显示某些内容 我真的很想用 Ember 构建一个完整的 Web 应用程序 所以有人能告诉我如何组织和连接多个控制器 模型和视图到一个页面中吗 例如 如
  • 如何使用 jQuery 向表中添加新行,并为其分配递增的 id

    我有一个现有的 HTML 表格 它是用户输入 GPS 点的表单的一部分 用户还可以选择上传 GPS 数据点 我想要一个用户可以按下的按钮 其中一些 Javascript 会向表中添加一个或多个新行 但新行必须继续增加表中使用的名称和 id
  • 将非 www 和非 http 重定向到 https

    昨天我在服务器上安装了 SSL 从那以后我无法访问某些页面 www example com amsterdam shoes example com 阿姆斯特丹 两者都不会重定向到 https 甚至不会重定向到 http www exampl
  • 用数组反向查找对象

    假设我有一个这样的对象 resourceMap a 0 1 2 3 4 5 6 7 8 9 10 b 11 12 c 21 23 d 54 55 56 57 510 确定是否的最佳方法是什么resourceId 21将会 c 我们不知道钥匙
  • jQuery 选择器:为什么 $("#id").find("p") 比 $("#id p") 更快

    该页面的作者 http 24ways org 2011 your jquery now with less suck http 24ways org 2011 your jquery now with less suck断言 jQuery
  • 如何将 Browserify 与外部依赖项一起使用?

    我正在尝试慢慢地将 Browserify 引入我的网站 但我不想重写所有 js 也不希望 jquery 和其他库的重复实例与我的 Browserify 版本捆绑在一起 如果我构建将 jquery 列为外部依赖项的模块 那么如何将其指向我的全
  • 将 stdout 和 stderr 重定向到带有前缀的单个文件

    我正在编写一个 bash 脚本 需要重定向stdout and stderr我运行到单个文件的命令的输出 在每行前面加上前缀stderr or stdout 因此 有没有一个简单的方法可以做到这一点 from Debian http www
  • Jquery,清除/清空 tbody 元素的所有内容?

    我认为这会相当简单 但似乎空方法无法清除我拥有的 tbody 如果有人知道执行此操作的正确方法 我将不胜感激 我只想删除 tbody 中包含的所有内容 到目前为止我正在尝试 tbodyid empty HTML table tbody tr
  • Jquery:选择菜单以显示和隐藏某些div元素

    我正在创建一个选择菜单 根据所选选项显示和隐藏某些 div 像这样的东西
  • ng-model 和值组合不适用于输入文本框

    我有两个输入文本框 我需要组合在两个文本框中输入的值并将其显示在第三个文本框中 如果我只使用value在第三个文本框中 Box 1
  • 需要js、d3 和 nvd3 集成

    我面临整合的问题要求 questions tagged requirejs with d3 questions tagged d3 and nvd3 questions tagged nvd3 我找到了一个使用 require 的简单解决方
  • 如何获取使用 .map 渲染的第一个元素的 ref?

    我需要在几行中显示视频 卡片 的缩略图 并重点关注第一个缩略图 我使用嵌套地图进行了显示 该代码基本上迭代视频数组并返回多行视频 我们如何关注第一个渲染的元素 我认为我们需要获得第一个要聚焦的元素的引用 但是我们如何在这里设置 ref 并在
  • 当选择下拉列表中的某些值时,取消选中复选框

    当我从下拉列表中选择某个值或用户未从下拉列表中选择任何值时 我需要取消选中复选框 我现在正在使用 Jquery 这是我现在使用的代码 但它不起作用 Script
  • Django 与谷歌图表

    我试图让谷歌图表显示在我的页面上 但我不知道如何将值从 django 视图传递到 javascript 以便我可以绘制图表 姜戈代码 array Year Sales Expenses 2004 1000 400 2005 1170 460
  • 如何在 SVG 元素上使用箭头标记?

    我需要在 d3 js 中创建一个箭头 但我找到的只是带有节点图的示例 我需要的是简单地制作一个从 A 点到 B 点的箭头 我尝试实现以下示例中的部分代码 http bl ocks org 1153292 http bl ocks org 1
  • 我可以使用 jQuery 动态创建文件(及其内容)吗? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 这是我的 HTML 代码 ul li

随机推荐

  • 使用 PGP/MIME 签署多部分邮件

    我正在尝试在 php 中使用 PGP 签署邮件 我可以使边界和标头正常工作 但邮件签名无效 如 Thunderbirds Enigmail 所述 我想问的是 签字的部分是什么 签字时要注意什么 目前生成的邮件的来源如下所示 文本和签名被占位
  • 如何在SqlAlchemy中更新所有行的一列数据?

    对于单条记录更新 我尝试了以下代码并且它有效 uid 1 info Info query filter by id uid first info sold status 1 db session add info db session co
  • Android Q(API 级别 29)不会加载 HTTPS 网站。给出错误:(net::ERR_ACCESS_DENIED) [重复]

    这个问题在这里已经有答案了 我正在尝试修复一个issue https stackoverflow com questions 58899869 webpage not available webview android 58900009 5
  • 教义如何使用ANY_VALUE mysql函数

    自 mysql 5 7 5 起 group by 发生了变化 https dev mysql com doc refman 5 7 en group by handling html https dev mysql com doc refm
  • 通过 HTML5 本地存储实现同步原语

    考虑这样一种情况 浏览器有两个或多个选项卡指向同一源 不同选项卡的不同事件循环可能会在访问本地存储时导致竞争条件 并且不同选项卡可能会覆盖本地存储中彼此的更改 我正在编写一个将面临此类竞争条件的 Web 应用程序 因此我想了解在这种情况下可
  • 有没有办法在 Go 项目上为导入提供可重用的路径?

    我对 Go 很陌生 需要一些帮助来使导入路径在我的团队之间更容易分配 目前 在我的一个 Go 文件的顶部 我有一个导入 例如 github teamName com teamMemberA HeartThrob c 我将他的项目分叉为我自己
  • 将字符串分离到 r 中的列表中

    我在 R 中有一个字符串 如下所示 PP BGH AC ETL D 我想将其转换为列表 以便 List 1 PP List 2 BGH List N D 如果有逗号 你可以执行 strsplit 但我想保留括号而不是删除它们 不知道如何在
  • 基于上下文的 Rails 3 路由

    我正在尝试实现一个类似于 GitHub 使用的 上下文 系统 例如 可以创建属于用户或用户所属的公司之一的帖子 具体取决于用户是在 用户 上下文中还是在引用公司之一的上下文中 作为其中的一部分 我希望能够根据用户当前的上下文进行路由 例如
  • 集成了蓝铜矿的 Visual Studio 2022 (v3.14.1) 在创建本地 blob 容器时给出错误消息 InvalidHeaderValue

    这是抛出的错误 Headers Server Azurite Blob 3 14 1 x ms error code InvalidHeaderValue x ms request id a3aca2f1 c0af 4af5 a54c d7
  • 有没有办法以编程方式从 Cocoa 连接到远程服务器?

    是否有 Cocoa objC API 调用来模仿 Finder 中的 连接到服务器 操作 Automator 可以做到这一点 所以 Finder 似乎在某个地方有一个钩子 原来有一个旧的 Carbon 函数 找不到 Cocoa 的等价函数
  • 抽象方法错误

    我正在 netbeans 中开发一个项目 当我使用 glassfish 3 1 2 启动它时 一切正常 但是当我调用映射到以下方法的 invite url 时 RequestMapping value invite method Reque
  • 如何判断一个点是否在3个点的外接圆内?

    有什么简单的解决办法吗 或者有人有实施的例子吗 谢谢 乔纳斯 我们打电话吧 a b c 我们的三点 C a b c 的外接圆 还有一点 确定 d 是否在 C 中的快速方法是计算行列式 ax dx ay dy ax dx ay dy det
  • 我可以在显示之前获得正确的 JComponent 大小吗?

    JComponent 的大小何时计算 在屏幕上显示之后还是之前 如果我发送 getSize 之前留言 setVisible true 它会给我right回答 谢谢 例如 我有时会在调试时检查组件的大小 以找出为什么我看不到它们 在大多数情况
  • PHP readfile 返回零长度文件

    This is weird 我有一个脚本 可以通过浏览器将本地 zip 文件发送给用户 到目前为止 该脚本运行良好 没有出现任何问题 今天 我的同事通知我该脚本正在发送零长度文件 一些背景信息 脚本出错之前服务器设置没有被修改过 测试了不同
  • 如何将文件从远程复制到主机ansible?

    我正在尝试将文件从远程主机复制到运行 Ansible playbook 的本地服务器 虽然任务总是成功执行 但文件从未复制到本地服务器 这是代码 file path vm info config mode 0777 fetch src vm
  • 通过 objectID 获取 NSManagedObjects 数组返回空数组

    我正在尝试使用从单独的上下文中收集的对象 ID 数组来执行提取操作 以从上下文中检索托管对象 然而 提取返回一个空数组 来自 核心数据编程指南 的 检索特定对象 部分link https developer apple com librar
  • 如何求列表中两个元素的最大乘积?

    我在 hackerrank 竞赛中尝试一个问题来取乐 然后出现了这个问题 我为此使用了itertools 代码如下 import itertools l for in range int input l append int input m
  • 片段事务上的片段重复

    好的 每当我尝试替换应用程序中的片段时 它只会将片段添加到另一个片段所在的容器内 并保留当前片段 我尝试调用替换并引用包含片段的视图 并引用片段本身 这些都不起作用 我可以使用片段事务管理器将片段添加到视图中 但即使我在添加后尝试将其删除
  • 如何在 C# 中停止线程?

    我创建了一个客户端 服务器应用程序 在服务器上我希望有机会停止服务器然后再次启动它 问题是我无法停止侦听 Tcp 连接的线程 如何在 C 中关闭线程 Thanks private void KeepServer while this con
  • 如何在 jQuery Ajax 调用后管理重定向请求

    我在用着 post 使用 Ajax 调用 servlet 然后使用生成的 HTML 片段替换div用户当前页面中的元素 但是 如果会话超时 服务器会发送重定向指令以将用户发送到登录页面 在这种情况下 jQuery 正在取代div元素与登录页