AngularJS$http:如何避免重定向跟踪
AngularJS $http: how to avoid redirect following
在AngularJS应用程序中,我对服务器URL进行了$http.post 调用。这个 url 的成功响应是 30x 重定向,我的问题是 $http.post 严格遵循这个重定向并在成功回调中返回最终调用的结果。我想拦截此重定向并手动将用户(更改浏览器 URL)重定向到最终页面。有可能吗?
根据
文档,$http
服务是一个核心的 Angular 服务,它通过浏览器的 XMLHttpRequest 对象或 JSONP 促进与远程 HTTP 服务器的通信。
这一点,并且知道XMLHttpRequest的规范,可能无法拦截重定向。
XMLHttpRequest 的 W3C 规范说
如果响应的 HTTP 状态代码为 301、302、303、307 或 308
如果重定向违反了无限循环预防措施,这是一个网络 错误。
否则,请运行以下步骤:
将请求 URL 设置为位置标头传达的 URL。
如果源源和请求 URL 的来源是同一来源 透明地遵循重定向,同时观察同源 请求事件规则。
否则,请按照跨源请求步骤并终止 此算法的步骤。
HTTP 对用户代理提出了有关保留的要求 重定向期间的请求方法和请求实体正文,以及 还要求通知最终用户某些类型的自动 重 定向。
因此,重定向早在 Angular 可以对此执行任何操作之前就发生了,并且无法停止。
另一种选择是对您自己的服务器进行$http
调用,然后使用类似 cURL 服务器端(取决于服务器端使用的语言)之类的东西,可以将其设置为不遵循重定向,以获取资源。
相关文章:
- 通过javascript重定向html传递php变量
- JavaScript下拉菜单-点击按钮并根据所选值重定向到url
- 使用angular重定向到html页面
- 如何在chrome扩展中重定向到html页面
- 无法从jquery Mobile导航栏重定向到另一个页面
- ng视图外的链接重定向到ng视图内的页面
- 避免重定向后重新加载页面
- AngularJS$http:如何避免重定向跟踪
- 避免对已经访问过的用户进行重定向
- 离子:避免重定向离子列表中的按钮
- iPhone:避免JavaScript重定向
- 在ExpressJS中处理重定向,同时避免重定向循环
- 避免从字段为空的html页面重定向
- 在iframe内提交表单时如何避免重定向
- 如何避免safari警报时,重定向到iTunes链接
- 在ios浏览器中避免204响应的表单重定向
- 只使用ajax进行登录https://,以避免重定向时出现警告
- Java小程序的部署工具包:如何在没有安装JVM的情况下避免重定向
- 如何使输入文件按钮在从桌面拖放时有用,但避免本地重定向
- Javascript或Jquery检测页面刷新和重定向到错误页面-避免重复的数据提交