我在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);
}
};
}
]);