在cordovaFileTransfer之后处理响应头

时间:2016-07-07 11:01:45

标签: angularjs cordova ionic-framework cordova-plugins

我在cordovaFileTransfer应用中使用ionic进行图片上传。我还使用ng-token-auth进行授权。它通过标题交换令牌。 问题是ng-token-auth拦截更新令牌的http服务,但是cordova不使用http服务。

那么如何在文件上传后处理响应以更新标题中的标记。

更新。 在这里我称之为文件上传。

@cordovaFileTransfer.upload(
  upload_path,
  file_uri,
  httpMethod: method,
  headers:  @auth.retrieveData('auth_headers')
 )

这是截取http:

的ng-token-auth代码
$httpProvider.interceptors.push([
  '$injector', function($injector) {
    return {
      request: function(req) {
        $injector.invoke([
          '$http', '$auth', function($http, $auth) {
            var key, val, _ref, _results;
            if (req.url.match($auth.apiUrl())) {
              _ref = $auth.retrieveData('auth_headers');
              _results = [];
              for (key in _ref) {
                val = _ref[key];
                _results.push(req.headers[key] = val);
              }
              console.log("REQUEST_NEW_HEADERS")
              console.log(req)
              console.log($auth.retrieveData('auth_headers'))
              console.log(_results)

              return _results;
            }
          }
        ]);
        return req;
      },
      response: function(resp) {
        $injector.invoke([
          '$http', '$auth', function($http, $auth) {
            if (resp.config.url.match($auth.apiUrl())) {
              console.log('[RESP_SUCCESS]')
              console.log(resp.headers())
              return updateHeadersFromResponse($auth, resp);
            }
          }
        ]);
        return resp;
      },
      responseError: function(resp) {
        $injector.invoke([
          '$http', '$auth', function($http, $auth) {
            if (resp.config.url.match($auth.apiUrl())) {
              console.log('[RESP_ERROR]')
              console.log(resp.headers())

              return updateHeadersFromResponse($auth, resp);
            }
          }
        ]);
        return $injector.get('$q').reject(resp);
      }
    };
  }
]);

0 个答案:

没有答案