gpt4 book ai didi

javascript - angularjs $httpProvider 拦截器文档

转载 作者:可可西里 更新时间:2023-11-01 01:30:17 24 4
gpt4 key购买 nike

我是 Angular(和编程)新手,这是一个看似简单的问题,但我无法弄明白。

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

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

我从其他教程中知道拦截器是一个常规服务工厂,我知道如何使用它,但我的问题是:因为语法是 $httpProvider.interceptors.push('interceptorName'),那么我期望我会在$httpProvider中找到一个名为“interceptors”的属性,但实际上我找不到。我想念这种困惑吗?还是我的概念从根本上是完全错误的?

最佳答案

拦截器在 documentation here 中.

这是一个如何编写的示例。

.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 script from which the docs are generated 中包含以下代码:

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

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

最可靠的“文档”是源代码本身,尽管阅读起来可能不太友好!在我上面链接的源代码中,你可以看到this.interceptors = []this 引用了 $httpProvider,所以它将属性 interceptors 赋值给 $httpProvider,值为 an空数组。要添加拦截器,只需将拦截器push() 到此数组即可。

关于javascript - angularjs $httpProvider 拦截器文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26171986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com