我尝试转换/拦截我的angular + closure项目中的某些请求,但不是所有请求都将我的camelCase键更改为snake_case。
我设法在我的配置中添加了$httpProvider
的默认拦截器和变换器,但这包括所有请求,包括模板。在我的每个资源配置中添加一个选项我可以允许/禁止转换,但是配置选项只能在不响应的请求中访问,这意味着我必须首先检查它的JSON是否是理想的。
我相信变换也会获得原始请求体(或者可能是我能记住的所有测试的拦截器),并且将它转换为JSON等等,似乎容易出错。
$resource
的拦截器仅允许response
和responseError
拦截器出于某种令人沮丧的原因。
有没有办法拦截每个请求/响应JSON对象,我可以将变换器保存在自己的文件/类/工厂中,允许它或者需要该函数并在每个请求中调用它?
最佳路线是什么?
答案 0 :(得分:0)
您可以使用$http
拦截器。 $resource
正在后台使用$http
服务发出请求,因此会将其应用。
function MyInterceptor() {
return {
request: config => {
// do your logic here
// you can modify only end-points you want to modify by using if statements
}
}
}
function config($httpProvider) {
$httpProvider.interceptors.push('MyInterceptor');
}
angular
.module('app')
.factory('MyInterceptor', MyInterceptor)
.config(config);