首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angularjs拦截器:拦截器不工作

Angularjs拦截器:拦截器不工作
EN

Stack Overflow用户
提问于 2022-05-23 08:19:57
回答 1查看 40关注 0票数 0

嗨,下面是我来自angularjs的代码,代码的第一部分显示了我如何向php发出请求,当出现问题时有错误的代码时,它会返回数据。当它返回一个错误代码(例如401 )时,前端会随着一个错误而爆炸,一切都会中断。据我所知,我必须使用拦截器,这样才能捕获错误号而不出错。我不能这样截取。

代码语言:javascript
复制
 app.js

    app.factory('httpRequester', function ($http, $route) {
    
        var promise;
        var myService = {
            async: function (myData) {
    
    //Create my obj for request
                var req = {
                    method: myData.Method,
                    url: 'https://**********/' + url,
                    headers: {
                        'X-API-KEY': '**************',
                        'KEY': myData.Authentication.AccessToken
                    },
                    data: myData
    
                };
    
    
                promise = $http(req).then(function (response) {
    
        if (response.data === 'permission denied') {
    
                        window.location.href = '#/';
                    } else {
                        return response;
                    }
                });
    
                return promise;
            }
        };
    
        return myService;
    });

//set拦截器在app.js var interceptorApp =angular.module(‘拦截器’,[]);

代码语言:javascript
复制
interceptorApp.config(function($httpProvider) {
        $httpProvider.interceptors.push('genericInterceptor');
});

请帮我解决我的问题,如何设置拦截器工作。

EN

回答 1

Stack Overflow用户

发布于 2022-05-23 08:28:41

代码语言:javascript
复制
//Function  for set error and success after request
    var testInterceptor = function ($q)  
    {  
        return {  
            request: function (config)  
            {  
                //console.log('request started...');  
            },  
            requestError: function (rejection)  
            {  
                console.log(rejection);  
                // Contains the data about the error on the request and return the promise rejection.    
                return $q.reject(rejection);  
            },  
            response: function (result)  
            {  
               // console.log('data for ' + result.data.name + ' received');  
                //If some manipulation of result is required before assigning to scope.    
                result["testKey"] = 'testValue';  
                console.log('request completed');  
                return result;  
            },  
            responseError: function (response)  
            {  
               // console.log('response error started...');  
                //Check different response status and do the necessary actions 400, 401, 403,401, or 500 eror     
                return $q.reject(response);  
            }  
        }  
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72345329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档