在Angular中需要在传输之前设置Authorization标头

时间:2016-05-09 01:44:15

标签: angularjs angular-ui-router

$scope.downloadPDF = function (docId) {
        //Need the code to add the authorisation header before transfer
        var pdfURL = $rootScope.genericApiurl + 'servicetype/pdfDocument?docId=' + docId;
        $window.location.href = pdfURL;
    }

尝试设置$ http.defaults.headers.common ['授权'] ='基本'+ authdata;但没有工作。

2 个答案:

答案 0 :(得分:0)

当您使用var lineSpace = $("#lineSpace").val();时,浏览器将发出HTTP请求,而不是您的代码。因此,您无法为其添加身份验证标头。

我建议你改用参数alert()

还有另一个建议(更安全):
您可以为每个PDF文件生成一个包含过期时间和一些信息的下载令牌,该令牌将被加密。在服务器端(您的api),您将获得令牌然后您可以解密它并检查此令牌是有效还是无效。如果它有效,您将从api返回FileContent类型。

E.g。 yourdomain.com/api/document/aaa-bbb-ccc/download/xxxxxxxxxxxxxxxxx.yyyyyyyyyyyyyyyyy YYYYYYY

使用:
xxxxxxxxxxxxxxxxx.yyyyyyyyyyyyyyyyyyyyyyyy aaa-bbb-ccc :documentId

答案 1 :(得分:0)

试用以下代码段

$http({method: 'GET', url: 'www.google.com/someapi', headers: {
    'Authorization': 'Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=='}
});

来源:https://stackoverflow.com/a/11876907/2134604