302 登录重定向后,URL 片段被 IE 删除

2023-12-02

We use 站点管理员我们的应用程序中的身份验证。

如果应用程序用户尝试导航到特定页面https://ourapp.com/myapp/#/pending/requests在我们的应用程序中通过直接 URL 或通过书签 URL,SiteMinder将重定向到login page通过 302 重定向类似于http://ourapp.com/login?redirect=https%3A%2F%2Fourapp.com%2Fmyapp%2F#/pending/requests要求用户在 a 中输入凭据登录表单。身份验证成功后,用户应该被重定向到我们的应用程序并登陆所请求的页面(/pending/requests).

它工作得非常好Chrome and Firefox。当谈到 IE 时,它会登陆https://ourapp.com/myapp/#/home(默认登陆页面)而不是https://ourapp.com/myapp/#/pending/requests.

我尝试过中提供的各种解决方案google search results在我们的应用程序代码中,例如

  • 去除<base> tag in index.html
  • 在页面顶部添加以下代码行
// setting location back
window.location = window.location;
// setting location hash back
window.location.hash = window.location.hash;
  • 与上面类似的其他解决方案很少

Though 本次问答完全有道理,

我还想preserve the URL hash fragment in IE even it's 3xx redirect为了我的要求...!?


回答我自己的问题

我发现认证成功后,SiteMinder是在做302 redirection通过使用用户请求的应用程序页面登录表单隐藏变量value(它存储用户请求的 URL/myapp/ - without hash fragment因为它不会被发送到服务器),名称类似于redirect。下面的表格示例

Sample login form

Since redirect隐变量value仅包含/myapp/如果没有哈希片段并且它是 302 重定向,则哈希片段甚至在进入我们的应用程序之前就会被 IE 自动删除,并且无论我们在应用程序代码中尝试的解决方案都不起作用。

IE 正在重定向到/myapp/仅,它登陆我们应用程序的默认主页https://ourapp.com/myapp/#/home.

浪费了几乎一天的时间来弄清楚这种行为。

解决办法是:

已经改变了登录表单隐藏变量(redirect) value保存哈希片段 追加window.location.hash以及现有的价值。类似于下面的代码

$(function () {
  var $redirect = $('input[name="redirect"]');
  $redirect.val($redirect.val() + window.location.hash);
});

此次变更后,redirect隐藏变量将用户请求的 URL 值存储为/myapp/#/pending/requests and SiteMinder正在将其重定向到/myapp/#/pending/requests in IE.

上述解决方案在所有三个浏览器中都运行良好Chrome, Firefox and IE.

感谢@AlexFord详细解释并提供解决方案对于这个问题。

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

302 登录重定向后,URL 片段被 IE 删除 的相关文章

  • 多个对象以某种方式相互干扰[原始版本]

    我有一个神经网络 NN 当应用于单个数据集时 它可以完美地工作 但是 如果我想在一组数据上运行神经网络 然后创建一个新的神经网络实例以在不同的数据集 甚至再次同一组数据 上运行 那么新实例将产生完全错误的预测 例如 对 XOR 模式进行训练
  • 如何让JComboBox中的内容居中显示?

    目前我有这个JComboBox 我怎样才能将其中的内容居中 String strs new String 15158133110 15158133124 15158133458 JComboBox com new JComboBox str
  • Android Jasper 报告

    Jasper Reporting 可以集成到 Android 应用程序中吗 我正在尝试从 jrxml 文件生成 PDF CSV 文本和 XLS 报告 但是 我没有看到 Android SDK 支持 net sf jasperreports
  • 查找总和为给定数字的值组合的函数

    这个帖子查找提供的 Sum 值的组合 https stackoverflow com a 20194023 1561176呈现函数subsets with sum 它在数组中查找总和等于给定值的值的组合 但由于这个帖子已经有6年多了 我发这
  • 如何为不同操作系统/Python 版本编译 Python C/C++ 扩展?

    我注意到一些成熟的Python库已经为大多数架构 Win32 Win amd64 MacOS 和Python版本提供了预编译版本 针对不同环境交叉编译扩展的标准方法是什么 葡萄酒 虚拟机 众包 我们使用虚拟机和Hudson http hud
  • 在 VS2008 的 XAML 编辑器中禁用 Intellisense?

    有没有办法在 Visual Studio 2008 的 XAML 编辑器中禁用 Intellisense 打字时通常会消耗很大的性能 有时我会等待十秒或更长时间 直到列表自动弹出 似乎在 选项 gt 文本编辑器 gt XAML 中 Inte
  • 查询联系人 - 有时返回空游标

    我正在尝试查询联系人的显示名称 Override public void onActivityResult int requestCode int resultCode Intent data switch requestCode case
  • Swing:创建可拖动组件...?

    我在网上搜索了可拖动 Swing 组件的示例 但我发现示例不完整或不起作用 我需要的是一个摇摆组件那可以是dragged通过鼠标 在另一个组件内 被拖拽的时候 应该已经 改变它的位置 而不仅仅是 跳 到目的地 我很欣赏无需非标准 API 即
  • 如何检查设备上是否安装了文本转语音 (TTS) 的特定语言数据?

    我正在创建一个使用文本转语音的应用程序 我希望用户能够离线使用它 因此我检查设备上是否安装了 TTS 数据 以下是执行此操作的代码 Check tts data is installed Intent checkTTSIntent new
  • RichFaces 应用程序,我应该使用 rich:dataTable 还是 jQGrid,优缺点吗?

    继从here https stackoverflow com questions 3899649 ok to wrap jsf components generated html with own divs using jquery aft
  • 如何调试 Gulp 任务?

    如何调试我的中定义的 gulp 任务gulpfile js使用诸如 Google Chrome 调试器之类的调试器逐行单步执行任务的代码 对于 Node js 6 3 版本 您可以使用 inspect flag https nodejs o
  • 在 javascript 中使用 xPath 解析具有默认命名空间的 XML

    我需要创建一个 XML xPath 解析器 所有解析都必须在客户端进行 使用 JavaScript 我创建了一个 javascript 来执行此操作 在默认名称空间发挥作用之前 一切看起来都正常 我根本无法查询具有默认命名空间的 XML 我
  • C++ Boost ASIO 简单的周期性定时器?

    我想要一个非常简单的周期性计时器每 50 毫秒调用我的代码 我可以创建一个始终休眠 50 毫秒的线程 但这很痛苦 我可以开始研究用于制作计时器的 Linux API 但它不可移植 I d like使用升压 我只是不确定这是否可能 boost
  • 在门户中查看 Azure WebJob 计划?

    我创建了一个简单的 Azure WebJob 并通过 Visual Studio 集成制定了每天运行一次的计划 我已经部署了 WebJob 并看到它列在我在 Azure 上的应用程序中 schema http schemastore org
  • 以 Rails 形式处理 MongoMapper EmbeddedDocument

    首先 我对一般编程和 Rails 都是新手 我选择 Rails 是因为它看起来是一种很容易上手的语言 对于我的项目 我将 MongoMapper 与 Rails 结合使用 我正在尝试以与文档相同的形式处理嵌入文档 我有以下模型 class
  • 根据列中的部分字符串匹配选择数据框行

    我想根据列中字符串的部分匹配从数据框中选择行 例如列 x 包含字符串 hsa 使用sqldf if它有一个like语法 我会做类似的事情 select from lt gt where x like hsa 很遗憾 sqldf不支持该语法
  • 小于或等于

    使用暂停命令我发现错误位于此代码的第一行 if choice 1 if energy gt m2enc set a enemhp enemhp m1hpd earmr pause set a energy energy m1enc set
  • 给定文档,选择相关片段

    当我在这里提出问题时 自动搜索返回的问题的工具提示给出了问题的前一点 但其中相当一部分没有给出任何比理解问题更有用的文本 标题 有谁知道如何制作一个过滤器来删除问题中无用的部分 我的第一个想法是修剪仅包含某个列表中的单词的任何前导句子 例如
  • CLion - 命令行程序参数

    当我分配给 运行 调试配置 程序参数 之类的 aaa bbb 然后打印它时 任何人都可以告诉我 JetBrains CLion 有什么问题吗 printf s n argv 1 我刚刚得到 aaa 而它必须是 aaa bbb 因为它们用双引
  • 无法将 /root/.rnd 加载到 RNG 中

    我想使用 Windows Open SSL 生成服务器证书 当我运行此命令行时 出现此错误 我应该怎么办 Command openssl req new x509 days 3650 key ca key out ca crt Error

随机推荐

  • 在curl中发送json文件并使用plumber在R中接收它

    我需要发送一个包含多个值的 json 文件并使用水管工在 R 中接收它 我尝试过这个 但它似乎不起作用 library rjson install packages rjson get predict post predict functi
  • Jquery 实时复制另一个文本框值

    我想获取另一个文本框的值并将其实时输入到另一个文本框中 如何检测 TEXT 3 是否已更改 如果 TEXT 3 值更改 则必须将其输入到 TEXT 4 为了您的方便 这里是代码和演示 HTML
  • 使用PHP查询MDB文件,并返回JSON

    我有一个 Microsoft Access 数据库 我正在尝试使用 PHP 查询该表 并输出有效的 JSON 我有一个 MSSQL 数据库的等效代码 我正在尝试让我的代码做同样的事情 但只是针对 Access 数据库 这是MSSQL代码 m
  • Angular2 嵌套 formGroups - formArrays 和模板绑定

    问题是这样的 我有一个带有嵌套表单组的复杂表单 这是它的 简化 结构 gt MyForm formGroup gt Whatever01 formControl input gt Whatever02 formControl input g
  • Bundler如何卸载冲突的依赖项

    我正在尝试执行vagrant plugin install vagrant vbguest在我的 Mac 上 ProductName Mac OS X ProductVersion 10 12 6 BuildVersion 16G29 但之
  • 分页时出现 SQL 错误

    大家好 我们有一个完美工作的关系控制器网页 index admin 但在添加分页后 它全部崩溃了 想出 SQLSTATE 42S22 Column not found 1054 Unknown column Relationship sen
  • 我想在 Nuxt.js 中的 Vuex 中使用 window.localStorage

    我开发 nuxt js 应用程序 重点是登录和注销 我们将开发 JWT 系统的登录 您必须保持 vuex 登录状态 但是 当我刷新页面时 vuex 被初始化 我读过 gitvuex 持久状态 但很难理解如何初始化和设置它 在 nuxt js
  • WPF 使用数据绑定显示格式化的多行文本

    我需要使用 WPF 数据绑定显示以下内容 值发生变化 标题必须是粗体 信息行是普通文本 如果给定标头的信息不存在 我想折叠该部分 包括标头 我更喜欢所有数据 标题和信息项 都位于一个格式化字符串中 该字符串可以在我想要的位置换行 Heade
  • 我们应该支持哪些 Xamarin ABI

    目前 我认为我们的 Xamarin Android 应用程序 PCL 非常庞大 即使在发布模式下也是如此 我怀疑这是由于支持的架构造成的 目前我们已将它们全部选中 有谁知道我们是否必须选择所有这些 我们也根本不使用 Android NDK
  • jQuery - .always() 回调触发得太快

    我正在开发一个客户端 JS 应用程序 该应用程序应该读取 CSV 文件 每行进行一些 API 调用 然后将结果写回 CSV 我所关注的部分是如何编排请求并在所有完成后触发一个函数 这是我到目前为止所拥有的 var requests loop
  • 使用“on”和“by”从两个 data.table 计算新变量

    我怎么不能用by当通过两个计算新变量时data tables合并后 示例数据集 library data table set seed 1 Example datasets dt1 lt data table id 1 10 var rno
  • 安卓中的OBB是什么

    我不知道如何使用OBB 有演示吗 我不知道它的优点 在android2 3以下的设备上使用会抛出异常吗 Detail 我读过一些有关它的文章 但我仍然不太了解 人们使用它似乎只是因为应用程序大小限制为 50mb 使用它可以将其扩大到4GB
  • 如何使用 scipy odeint 求解这个微分方程?

    我正在尝试使用 scipy odeint 求解以下微分方程 但没有取得太大成功 import numpy as np from scipy misc import derivative from scipy integrate import
  • 根据 Python str.format() 文档,什么是有效键

    我是 Python 新手 刚刚阅读了 Python 文档中的以下部分6 1 3 格式化字符串语法 Because arg name is not quote delimited it is not possible to specify a
  • 无法从 mainBundle 中删除文件

    我在从主包中删除文件时遇到问题 当我从 XCODE 4 2 中的支持文件中手动删除它们时 当我运行我的应用程序时它们仍然出现 我已经使用 显示包内容 打开了应用程序文件 并从那里手动删除了它们 当我运行应用程序时它们仍然显示 我已从模拟器和
  • 如何检查docker容器内是否正在运行进程?

    更新1 我有一个shell 它会更改某些功能中的TCP内核参数 但现在我需要使这个shell在Docker容器中运行 这意味着 shell需要知道它正在容器内运行并停止配置内核 现在我不知道如何实现这一点 这是内容 proc self cg
  • 如何将名称附加到 R 中输出数据帧的“列名称”?

    我知道我可以使用更改列的名称 colnames x lt c Column1 Column 2 Column 3 Column 4 如果我有 A lt Apple B lt Banana 我应该怎么做才能使输出数据帧的名称具有这样的名称 C
  • 如何裁剪多边形外的区域?

    我想使 PHP 中预定义多边形之外的任何内容变得透明 假设您有头部的形状 那么图像的其他任何内容都应该被分箱 预先非常感谢 为了让自己清楚 这是我一直在编写的一些代码 dat dirname FILE foto time png img i
  • 如何覆盖 @Html.LabelFor 模板?

    我有一个简单的字段表单 div class field fade label Html LabelFor model gt model Register UserName Html TextBoxFor model gt model Reg
  • 302 登录重定向后,URL 片段被 IE 删除

    We use 站点管理员我们的应用程序中的身份验证 如果应用程序用户尝试导航到特定页面https ourapp com myapp pending requests在我们的应用程序中通过直接 URL 或通过书签 URL SiteMinder