AngularJS $http:如何避免重定向跟随

2023-11-21

在 AngularJS 应用程序中,我对服务器 URL 进行 $http.post 调用。这个url的成功响应是30x重定向,我的问题是$http.post严格遵循这个重定向并在成功回调中返回最终调用的结果。 我想拦截此重定向并手动将用户重定向(更改浏览器网址)到最终页面。有可能吗?


根据docs, the $httpservice 是 Angular 的核心服务,它有助于通过浏览器的 XMLHttpRequest 对象或 JSONP 与远程 HTTP 服务器进行通信。

知道这一点并了解 XMLHttpRequest 的规范,就不可能拦截重定向。

The XMLHttpRequest 的 W3C 规范 says

如果响应的 HTTP 状态代码为 301、302、303、307 或 308

如果重定向违反了无限循环预防措施,则这是一个网络 错误。

否则,请运行以下步骤:

将请求 URL 设置为 Location 标头传达的 URL。

如果源origin和请求URL的origin同源 透明地遵循重定向,同时观察同源 请求事件规则。

否则,按照跨域请求步骤并终止 该算法的步骤。

HTTP 对用户代理提出了有关保存的要求 重定向期间的请求方法和请求实体主体,以及 还要求最终用户收到某些类型的自动通知 重定向。

因此,重定向早在 Angular 能够采取任何行动之前就发生了,而且无法停止。

另一种选择是做$http调用您自己的服务器,然后使用 cURL 服务器端(取决于服务器端使用的语言)之类的东西(可以设置为不遵循重定向)来获取资源。

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

AngularJS $http:如何避免重定向跟随 的相关文章

  • 使用selenium IDE提取部分文本并将其放入变量中

    有人可以告诉我应该使用哪个命令来使用 Selenium Ide 从文本中仅提取数字 694575 并将其放入变量中以供进一步使用 这是带有文本的 div div class loginBoxTitle Edit Exhibition Cen
  • Ext JS - 如何滚动到文本区域的底部

    这是我下面的代码 如何滚动到文本区域的底部 它一定是类似的东西 Ext getCmp output setScrollPosition Ext getCmp output getScrollHeight 这是我的文本区域代码 var myW
  • 计算Javascript中两次点击之间的时间

    我想用 javascript 计算属性的两次点击之间的时间 但我不知道如何 例如 a href click here a 如果用户单击多次 假设 5 秒内 我想显示警报 如果有帮助的话我正在使用 jQuery 我对 javascript 不
  • Flask wtf.quick_form 运行一些 javascript 并设置表单变量

    我正在创建博客文章 到目前为止已经使用普通的 html 表单完成了 我所做的一个有趣的想法是运行 javascript onclick 并使用页面中的额外数据在表单中设置一个隐藏变量 这很好地传递到服务器并通过 request form 获
  • 将 Sweet Alert 弹出窗口添加到 React 组件中的按钮

    我为 Bootstrap 和 React 找到了这个完美的 Sweet Alert 模块 我在 Meteor 应用程序中使用它 http djorg83 github io react bootstrap sweetalert http d
  • 创建 Cookie 时需要帮助

    我有一个名为yes和另一个名叫no
  • 如何记录返回的事件发射器

    如何记录所发出的事件stream返回于MyFunc 与 JSDoc MyFunc description param Object opts description return Stream description function My
  • JavaScript 动画平滑滚动

    默认情况下 当您有这样的片段链接时 a href some url some fragment some text a 浏览器立即向下滚动到该片段 我该如何编程才能使用标准 JS 顺利地向下移动到该片段 这是一个例子 Example htt
  • 如何改变HTML5视频的播放速度?

    如何更改 HTML5 中的视频播放速度 我查过视频标签的属性 https www w3schools com html html5 video asp在 w3school 但无法做到这一点 根据这个网站 http www chipwreck
  • 用数组反向查找对象

    假设我有一个这样的对象 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
  • 使水平滚动条始终可见,即使底部不在视图中

    我将用一个片段来开始这个问题 该片段几乎显示了我想要完成的任务 wrapper overflow hidden display flex sidebar min width 200px background 333 color FFF co
  • 选中复选框时提交表单

    有没有办法在选中复选框时提交表单
  • 如何将 Browserify 与外部依赖项一起使用?

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

    我正在编写一个 bash 脚本 需要重定向stdout and stderr我运行到单个文件的命令的输出 在每行前面加上前缀stderr or stdout 因此 有没有一个简单的方法可以做到这一点 from Debian http www
  • 有关于 PHP 中的 V8JS 的文档吗?

    有没有关于V8JS的文档 我是否只需要标准 PHP 或一些扩展即可使用 V8JS 我将非常感谢有关 PHP 中的 V8JS 的任何信息 要求 PHP 5 3 3 和 V8 库和标头安装在正确的路径中 Install http www php
  • 如何获取使用 .map 渲染的第一个元素的 ref?

    我需要在几行中显示视频 卡片 的缩略图 并重点关注第一个缩略图 我使用嵌套地图进行了显示 该代码基本上迭代视频数组并返回多行视频 我们如何关注第一个渲染的元素 我认为我们需要获得第一个要聚焦的元素的引用 但是我们如何在这里设置 ref 并在
  • 如何在 SVG 元素上使用箭头标记?

    我需要在 d3 js 中创建一个箭头 但我找到的只是带有节点图的示例 我需要的是简单地制作一个从 A 点到 B 点的箭头 我尝试实现以下示例中的部分代码 http bl ocks org 1153292 http bl ocks org 1
  • 如何更改订阅值?使用 rxJS

    我正在创建一个计时器 需要你的帮助 我刚刚学习 Angular 和 rxJS 对此我有一些疑问 我正在创建一个具有启动 停止 暂停 重置功能的计时器 并且 btn Reset 必须将我的计时器 暂停 到 300 毫秒 怎么做 D 我的启动定
  • Bootstrap 3 / 显示模式不适用于 javascript 方式

    我用Modal http getbootstrap com javascript modalsBootstrap 3 0 的功能 我有这个代码 a href myNestedContent Open the modal containing

随机推荐

  • 如何播放长音频剪辑?

    我编写了一个简单的类来在简单的游戏中播放音频文件 它对于枪声或爆炸等小声音效果很好 但当我尝试将它用于背景音乐时 我收到此错误 无法分配剪辑数据 请求的缓冲区太大 我假设这意味着文件太大 但我该如何解决这个问题 来源 import java
  • 从 WSL 运行 Express 服务器(不支持 UNC 路径)

    我正在尝试从 VS Code 中的 WSL 终端运行 Express 服务器 但是 每当我运行命令时npm run dev我收到以下错误 wsl Ubuntu home simao legalize backend CMD EXE was
  • 具有其他项目依赖项的 Eclipse 插件项目

    我有一个 Eclipse 插件项目 它依赖于我的 Eclipse 工作区中的其他项目 在 Java Build Path gt Projects 选项卡下添加项目依赖项 并在 Order and Export 中选择项目后 我收到 java
  • Windows Phone 8.1 中 ListView 中行的交替颜色

    我创建了一个 Windows Phone 8 1 运行时应用程序 我正在使用ListView控件 我想交替每个背景行的颜色 搜索后我发现了这个链接以前的答案 但这会导致标记错误 一方面 没有 AlternationCount 属性 我假设这
  • python 无法设置内置/扩展类型“object”的属性

    Python 似乎不允许您将属性分配给 对象 的内部最高级别 object lst lambda o list o Or func lambda o list o setattr object lst func 所有这些都会生成错误消息 背
  • 将鼠标悬停在 Chrome 开发工具中的变量上不显示当前值?

    将调试器放入 js 文件后 将鼠标悬停在 Chrome 开发工具中的变量上时 不会显示该变量的当前值 我使用的是 Chrome 版本 79 0 3945 88 官方版本 64 位 正如 wOxxOm 和 adam0101 正确指出的那样 这
  • 重置累计金额?

    我有以下数据集 表 stk S Date Qty OOS Out of Stock 1 true 0 false 01 01 2013 0 1 02 01 2013 0 1 03 01 2013 0 1 04 01 2013 5 0 05
  • 分割数据表

    我有一个 data table 我想将其分成两个 我这样做如下 dt lt data table a c 1 2 3 3 b c 1 1 2 2 sdt lt split dt dt b 2 但如果我下一步想做这样的事情 sdt 1 c N
  • 'git pull origin mybranch' 使本地 mybranch N 次提交先于原点。为什么?

    我刚刚观察到一些奇怪的事情git pull 我不明白 星期五 我在当地的一家分公司工作 我们就这样称呼它吧mybranch 在离开办公室之前 我将其推送到了 origin 这是我的 github 存储库 git push origin my
  • ASP.NET MVC:AJAX ActionLink - 以 HTML 属性为目标

    我有一个 Ajax 操作链接 它在控制器方法中请求一个字符串 我想将该字符串插入到超链接的属性中 如何指定目标id元素的属性字段 img src public string actionChange ViewData src somethi
  • java 数组的自定义排序

    我有一个 有一些数字 距某个点的距离 我想在第一个数组中创建一个索引数组 其中索引按距离排序 e g suppose double dist new double 5 3 2 1 4 7 3 2 2 9 1 然后我想得到一个像这样的数组 i
  • Android Studio 3.0 Canary 1下无法编译

    我尝试在 AS 3 0 Canary 1 下编译我的 Android 项目 在 AS 2 3 2 稳定版本上工作正常 但失败并出现以下错误 FAILURE Build failed with an exception What went w
  • 在 Rails3 中将块传递给标签助手

    我想用一些嵌套元素创建标签标记 我正在使用标签助手并尝试将内部 html 作为块传递 但生成的 HTML 看起来并不像我预期的那样 雇员福利局 span Span element span span Inner span span HTML
  • 如何在 Maven settings.xml 中设置存储库的顺序

    我的 settings xml 中有 3 个存储库 因为我需要所有这些存储库的工件 每当找不到依赖项时 Maven 就会尝试 Downloading http some server mvn2repo releases org apache
  • MySQL 按最高值选择 DISTINCT

    我有一桌子杂志 需要提取每本杂志的最新一期 我试过了 SELECT DISTINCT magazine FROM product p INNER JOIN SELECT title MAX onSale AS Latest FROM pro
  • 如何将 C++ 成员函数作为参数传递给 C API

    在我的 C 程序中 我需要调用这个 c API GConn gnet conn new const gchar hostname gint port GConnFunc func 其中 GConnFunc 定义为 void GConnFun
  • PHP速度测试当前页面无回显的用户连接速度

    我正在寻找一种检查用户连接速度的可能性 它应该被保存为cookie 如果速度慢的话 javascript文件以及css文件将被适配 我目前测试速度的可能性如下 kb 512 flush echo start time 0 time 1 fi
  • 浮点数的符号

    有没有一种简单的方法来确定浮点数的符号 我进行了实验并想出了这个 include
  • 如何使用算法来填充向量的向量

    I have typedef std vector
  • AngularJS $http:如何避免重定向跟随

    在 AngularJS 应用程序中 我对服务器 URL 进行 http post 调用 这个url的成功响应是30x重定向 我的问题是 http post严格遵循这个重定向并在成功回调中返回最终调用的结果 我想拦截此重定向并手动将用户重定向