angularjs $httpProvider 拦截器文档

2023-11-22

我是角度(和编程)的新手,这是一个看似简单的问题,但我无法弄清楚。

一些教程建议使用$httpProvider.interceptors.push('interceptorName')操纵http请求和响应。

我想了解更多关于拦截器的事情,所以我查看了官方文档,但是我找不到与拦截器相关的任何内容,只有一个方法(useApplyAsync([value]);)和一个属性(默认值)$httpProvider (docs).

我从其他教程中知道拦截器是一个常规服务工厂,并且我知道如何使用它,但我的问题是:因为语法是$httpProvider.interceptors.push('interceptorName'),那么我希望我会在其中找到一个名为“拦截器”的属性$httpProvider,但事实上我不能。我是不是错过了什么才导致这种混乱?或者我的概念从根本上来说是完全错误的?


拦截器位于文档在这里.

这是如何编写一个示例。

.config([
  '$httpProvider',
  function($httpProvider) {

    var interceptor = [
      '$q',
      '$rootScope',
      'userSession',
      function($q, $rootScope, userSession) {

        var service = {

          // run this function before making requests
          'request': function(config) {

            if (config.method === 'GET' || userSession.isAuth()) {
              // the request looks good, so return the config
              return config;
            }

            // bad request, so reject
            return $q.reject(config);

          }

        };

        return service;

      }
    ];

    $httpProvider.interceptors.push(interceptor);

  }
])

原因是上面什么都没有$httpProvider关于拦截器的文档页面是因为开发人员没有在$http生成文档的脚本:

/**
   * @ngdoc property
   * @name $httpProvider#interceptors
   * @description
// etc

众所周知,文档通常是不完整、不准确和/或令人困惑的。直到最近,当我找不到或理解某些东西时,我总是认为我是问题所在,但我发现这通常是因为文档很糟糕。然而,我们都应该庆幸我们有如此出色的工具可供使用,并请记住,文档可能很差,因为时间必须集中在编写工具而不是工具手册上。

最可靠的“文档”是源代码本身,尽管它可能不太容易阅读!在我上面链接的源代码中,您可以看到this.interceptors = []. this指的是$httpProvider,所以它正在分配属性interceptors to $httpProvider该值为空数组。要添加拦截器,您只需push()你的拦截器到这个数组。

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

angularjs $httpProvider 拦截器文档 的相关文章

  • JavaScript 对象引用缓存

    我们的代码库中有很多对象 它们的名称空间是为了避免冲突 Example App local view MyView 在我在代码库中看到的大多数地方 我们使用完整路径来获取对对象的引用 并且这在同一函数中重复多次 Example functi
  • 零作为 IIFE 中的第一个参数[重复]

    这个问题在这里已经有答案了 In babeljs v6 5 1 class Foo 编译为 use strict var classCallCheck2 require babel runtime helpers classCallChec
  • Three.js - 在代码中包含网格数据

    我有这个 Three js 代码 其中 JSON 加载器从文件 models mountain json 加载网格 var Three new function this scene new THREE Scene this camera
  • Chrome SuppressDifferentOriginSubframeJSDialogs 使用 JS 设置覆盖?

    Chrome 开发团队显然刚刚推出了一项名为 SuppressDifferentOriginSubframeJSDialogs 的新 功能 这使得默认情况下不会显示来自与父级不同域上的 iFrame 的警报 确认框 https www ch
  • 向对象添加元素

    我需要填充一个 json 文件 现在我有这样的东西 element id 10 quantity 1 我需要添加另一个 元素 我的第一步是使用该 json 将该 json 放入对象类型中cart JSON parse 现在我需要添加新元素
  • 如何在 AngularJS 中获得更多堆栈跟踪

    我正在使用装饰器来更改 exceptionHandler行为 将日志发送到服务器 我的问题是异常的堆栈跟踪似乎毫无用处 仅显示堆栈的一部分 例如 语法错误 标记 未定义 不是列 NaN 处的主表达式 表达式 此处的表达式 at Error
  • 在 JavaScript 中比较表单中的两个数字

    当我尝试比较不同的数字时 数字发生变化 但文本部分保持不变 这只发生在较大 较小的情况下 而不会发生在 NaN 或相等的情况下 这是我的代码 function check var a document getElementById a va
  • Telegram 授权无默认按钮

    使用 Telegram 第 3 方授权的唯一有记录的方法是使用其提供的脚本https core telegram org widgets login https core telegram org widgets login 这个脚本 正如
  • ng-repeat 指定起始索引

    如何指定 ng repeat 指令将开始的索引而不是零 我有一组结果 我只需要指定起始结果 它不同于零 无需编写任何代码 Angular 已经通过existing内置limitTo https docs angularjs org api
  • 如何修复错误“AttributeError:‘模块’对象在 python3 中没有属性‘客户端’?

    以下是我的代码 import http h1 http client HTTPConnection www bing com 我认为没问题 但是 python 给了我以下错误 AttributeError 模块 对象没有属性 客户端 我想知
  • 点击问题:动态生成的链接不触发点击功能

    下面是两个代码片段 由于某种原因什么也没有发生 但来自同一个 JS 文件的其他 jQuery 函数在带有 UL 的页面上执行得很好 这是在盯着我看吗 ul class paganation li 1 li li a href 2 a li
  • 专用网络:web3.eth.getAccounts() 始终发送空数组

    我正在运行一个私人以太坊网络 我确实用https aws amazon com blockchain templates 整个设置已经完成 AWS 上的设置看起来正确 现在 我正在尝试创建帐户并检索所有这些帐户 为此 我使用以下方法 Web
  • Chrome Javascript 调试器暂停时不会重新加载页面

    有时 当我在 Chrome 中调试某些 javascript 并且暂停了 javascript 时 如果我尝试重新加载页面 chrome 只会 继续 调试器 单步执行到下一个断点 似乎没有任何方法可以强制 javascript 完全停止运行
  • setInterval 内的返回值

    我想在 setInterval 内返回一个值 我只想以一定的时间间隔执行一些操作 这就是我尝试过的 function git limit var i 0 var git setInterval function console log i
  • Window 与 Var 声明变量[重复]

    这个问题在这里已经有答案了 可能的重复 JavaScript 中使用 var 和不使用 var 的区别 https stackoverflow com questions 1470488 difference between using v
  • Meteor.js 登录事件

    因此 我对 Meteor 框架和 JavaScript 总体来说还很陌生 但我正在使用该框架开发一个小项目 以尝试让自己达到标准 基本上我正在开发一个微博客网站 目前 用户可以通过多种服务登录 fb google 等 我通过插入所需 url
  • 使用 Lodash 的 TypeScript:_.map(["123", " 234 "], _.trim) 返回 boolean[]?

    我有一个字符串数组 它们已像这样分割 var searchValue 600 800 123 180 var groups searchValue split gt 600 800 123 180 因此项目周围可能存在空格 并且我想删除空格
  • 错误:创建 React Native 项目版本 0.59.9 时找不到 template.config.js

    当我尝试创建 React Native 项目版本 0 59 9 时 出现以下错误 错误错误 无法在 react native 模板中找到 var folders zc h93bvpb573q24 5ynvgkn1wc0000gn T rnc
  • 如何根据所需表单输入的值更改 CSS 样式

    我想知道如何编写 javascript 来改变所需的表单元素的样式 如果它们有价值的话就改变它们 我想要做的是当所需的文本字段为空时 在它们周围有一个彩色边框 并在它们有值时删除边框样式 我想做的是编写一个 javascript 函数来检查
  • Serviceworker Bug event.respondWith

    我的 serviceworker 的逻辑是 当发生获取事件时 它首先获取包含一些布尔值 而不是 event request url 的端点 并根据我正在调用的值检查该值event respondWith 对于当前的获取事件 我正在提供来自缓

随机推荐

  • 即使设置了包含路径,Eclipse 也找不到头文件

    这是我们已经处理了一段时间的问题 我们正在使用 Cygwin 工具链构建 C 项目 无论我们在 C 编译器中添加项目设置下的包含路径 Eclipse 似乎都找不到必要的头文件 到目前为止 我们已经完成了 Stackoverflow 社区建议
  • 启动器和发送活动的意图过滤器

    我试图让我的主要活动成为启动器活动并接收发送事件 不知怎的 我似乎无法让两者同时工作 例如 我的应用程序托盘中有启动器图标 但不在图库中的图像共享菜单中 我怎样才能让两者同时工作 使用此意图过滤器 图标位于应用程序托盘中 但不在共享菜单中
  • SQL 数据透视日期列?

    我对 SQL 相当陌生 但相信我 在发布此内容之前我已经搜索过帮助 我有一个查询 它返回分配给工作的人员列表 这些工作的长度也不同 分配给这些工作的人员的工作长度也不同 我想做的是转换类似记录的列表 唯一改变的变量是日期 以及如何旋转此数据
  • 如何在 .net 内存转储中列出正在运行的任务

    我们有一个使用异步 等待模式的复杂 ASP Net Core 应用程序 该应用程序最近停止响应 我们为其进行了内存转储 我们怀疑有一些异步操作导致应用程序卡住 但不确定是哪一个 在对 Web 应用程序进行内存转储后 我们可以看到很少有正在运
  • 我想用 python 抓取印地语(印度语言)pdf 文件

    我已经编写了Python代码 可以从PDF文件中抓取所有数据 这里的问题是 一旦被刮掉 单词就失去了语法 如何解决这些问题 我附上代码 from pdfminer pdfinterp import PDFResourceManager PD
  • asyncio 中的合作收益

    我正在 龙卷风 网络服务器上运行一个长时间的 CPU 密集型任务 我不想将此任务卸载到线程 目前 在这个长时间运行的任务中 如何正确地 yield 控制事件循环 以便网络请求仍然得到服务 注意 我在这里以合作调度的方式使用 yield 而不
  • AWS 中的负载均衡器、侦听器目标、目标组之间有什么区别?

    您好 我是 AWS 新手 试图了解负载均衡 目标 目标组和安全组之间的区别 我有 2 个实例正在运行 现在我想平衡这些服务器的负载 是否会在新实例上创建负载平衡 什么是侦听器以及它们与负载均衡器有何不同 是的 负载均衡器是一个 EC2 实例
  • 非常量大小的数组:为什么这有效? [复制]

    这个问题在这里已经有答案了 include
  • 可调整大小的 Vue-good-table 或 Vue

    我在 Vue js 中有一个使用 Vue good table 制作的表格 我需要找到一种方法来调整大小 像这样的东西 https codepen io validide pen aOKLNo 不幸的是 据我所知 Vue good tabl
  • 为什么wcftestclient中无法调用WCF?

    我建立了一个WCF服务 它在IE addr中运行良好 但是当我将其添加到wcftestclient并调用方法时 会提示错误并显示为 调用服务失败 可能原因 服务离线或无法访问 客户端配置与代理不匹配 现有代理无效 有关更多详细信息 请参阅堆
  • Android 的基于位置的推送通知

    有没有办法在不使用第三方推送通知服务 例如 Parse 的情况下为 Android 设备发送基于位置的推送通知 我想向我的用户发送推送通知 而不会因为收到与该特定用户无关的通知而烦恼 因为他们不在某个区域 另外 我可以根据时间间隔获取用户位
  • 在 Electron 中出现“alert”后无法编辑输入元素

    TLDR 我正在学习电子 我有一个 HTML 元素
  • 什么是双箭头函数?

    什么是 让x something1 gt something2 gt something3 我有这段代码 但我无法理解它的作用 const myReducers person hoursWorked const combineReducer
  • Notepad++ 6.1.x 和 HTMLTidy

    有人可以使用 Notepad 6 1 x 和 HTMLTidy 并可以告诉我在哪里下载 dll config 使用 Notepad 6 1 4 Win 7 x86 是的 这个 Notepad TidyHTML 问题已经被问过 但它要么引用过
  • 根据条件从列表中删除重复项目

    我有一个具有属性 名称 价格 的项目类 Item1 100 Item2 200 Item3 150 Item1 500 Item3 150 仅当名称存在多次且价格为 500 美元时 我才想使用 LINQ 删除项目 而不创建自定义比较器 对于
  • 防止保存时删除主体为空的方法

    一直按 Ctrl S 是我的一个很矛盾的习惯 不利的一面是delphi在保存时删除空函数 过程 有没有办法防止 IDE 删除保存时主体为空的函数 过程 根据 OP 请求从评论转换而来 我的评论太小 无法回答 所以我将添加一些可能对OP来说已
  • DMARC -spf 和 DKIM 记录查询

    我有一个与第三方供应商的场景 我们公司有很多第三方邮件服务 我已经使用 p none 设置了 dmarc 并且使用已知的发送服务器更新了 SPF 记录 您能否澄清我在 Dmarc org 网站上读到的有关使第 3 方供应商符合 Dmarc
  • JQuery - 实时复制字段输入文本

    我试图弄清楚如何将一个表单字段中的用户文本输入复制到另一个表单字段中 具体来说 当有人在联系表单中填写其电子邮件地址时 该地址将在邮件列表表单中重复 这两种表单都使用 ajax 因此不必担心输入文本在提交时丢失 这是我的代码 div div
  • 如何在 Node.js 中监听剪贴板事件?

    我希望能够侦听 Node js 中的剪贴板事件 更准确地说是复制事件 我已经在java中使用过windows键盘钩子 所以我已经对这个主题有点熟悉了 由于我使用 Ubuntu 10 10 作为我的主要操作系统 因此我对 Ubuntu 桌面解
  • angularjs $httpProvider 拦截器文档

    我是角度 和编程 的新手 这是一个看似简单的问题 但我无法弄清楚 一些教程建议使用 httpProvider interceptors push interceptorName 操纵http请求和响应 我想了解更多关于拦截器的事情 所以我查