我的应用程序80%是用角写的,20%是用jquery编写的。我已经编写了一个请求拦截器的角度使用$httpprovider,它正在与其他角页很好地工作。我有三个问题:
1)我想对jquery页面使用相同的拦截器。我怎样才能做到这一点?
2)我希望在页面加载时只调用我的拦截器一次。我怎样才能做到这一点?它目前正在被调用7-8次(我猜在整个页面加载期间ajax调用的次数)。
3)有人能给我输入吗?我如何为这个拦截器和使用这个拦截器的页面编写茉莉花规范。提前感谢!
app.config(['$httpProvider', function ($httpProvider) {
'use strict';
$httpProvider.interceptors.push('myAppInterceptor');
}]);
app.factory('myAppInterceptor', ['$q','$window','$injector',function ($q,$window,$injector) {
'use strict';
var myAppInterceptor = {
request: function(config) {
console.log('myAppInterceptor is called');
// some business logic done here...
}
return config;
}
};
return myAppInterceptor;
}]);
发布于 2016-11-17 12:26:41
1)要让遗留代码中的XHR调用被$httpProvider拦截器截获,您需要调用一个通过$http或$resource进行XHR调用的角服务。
Se this获取有关从遗留代码调用角服务的信息。
( 2)每次请求都要调用角拦截器。如果您只想在页面加载时调用它一次,则拦截器不是正确的选择。更好的选择是在服务中加载页面时使请求+逻辑成为路由器状态下的resolve属性。
3)在茉莉中使用$httpBackend来模拟$http调用,如果拦截器做了它应该做的事情,那么可以选择它。
https://stackoverflow.com/questions/40653772
复制相似问题