相关疑难解决方法(0)

如何在响应拦截器中再次发送请求?

我在我的应用程序中创建了一个检测会话丢失的拦截器(服务器发送HTTP 419).在这种情况下,我需要从服务器请求一个新会话,然后我想再次自动发送原始请求.
也许我可以在请求拦截器中保存请求,然后再次发送它,但可能有一个更简单的解决方案.

请注意,我必须使用特定的Web服务来创建会话.

angular.module('myapp', [ 'ngResource' ]).factory(
    'MyInterceptor', 
    function ($q, $rootScope) {
        return function (promise) {
            return promise.then(function (response) {
                // do something on success
                return response;
            }, function (response) {
                if(response.status == 419){
                    // session lost
                    // create new session server-side
                    // Session.query();
                    // then send current request again
                    // ???
                }
                return $q.reject(response);
            });
        };
    }).config(function ($httpProvider) {
        $httpProvider.responseInterceptors.push('MyInterceptor');
    });
Run Code Online (Sandbox Code Playgroud)

interceptor angularjs

30
推荐指数
4
解决办法
2万
查看次数

使用Angular拦截Unathorized API调用

我试图拦截401403错误刷新用户令牌,但我不能让它运作良好.我所取得的就是这个拦截器:

app.config(function ($httpProvider) {

  $httpProvider.interceptors.push(function ($q, $injector) {

    return {
      // On request success
      request: function (config) {
        var deferred = $q.defer();

        if ((config.url.indexOf('API URL') !== -1)) {
          // If any API resource call, get the token firstly
          $injector.get('AuthenticationFactory').getToken().then(function (token) {
            config.headers.Authorization = token;

            deferred.resolve(config);
          });
        } else {
          deferred.resolve(config);
        }

        return deferred.promise;
      },

      response: function (response) {
        // Return the promise response.
        return response || $q.when(response);
      },

      responseError: function (response) {
        // Access token invalid …
Run Code Online (Sandbox Code Playgroud)

javascript interceptor angularjs angular-promise

21
推荐指数
1
解决办法
2233
查看次数