一尘不染

在angularjs中向此HTTP GET添加HTTP基本身份验证

angularjs

我有一个现有的angularjs代码,可以进行HTTP GET。下面提取的是控制器内部的一些相关代码。

    .controller('imptViewCtrl', ['$scope', '$http', 
        function ($scope, $http, ) {
                    var url = $configuration.webroot + '/impt/list?list=testlist';
                    $http.get(url).then(function (response) {
                               tableData = response.data;
                               });
        }]);

我想将HTTP基本身份验证添加到HTTP GET。用户名为foo,密码为bar。如何才能做到这一点?


阅读 212

收藏
2020-07-04

共1个答案

一尘不染

因为在基本身份验证中,用户名和密码由base64解码。您首先需要找到一个图书馆来完成这项工作。

https://github.com/ninjatronic/angular-
base64

之后,加载base64到您的应用程序和配置标题中。

angular
    .module('myApp', ['base64'])
    .config(function($httpProvider, $base64) {
        var auth = $base64.encode("foo:bar");
        $httpProvider.defaults.headers.common['Authorization'] = 'Basic ' + auth;
    })

您也可以根据需要提供身份验证标头以get单独运行。

var auth = $base64.encode("foo:bar"), 
    headers = {"Authorization": "Basic " + auth};
$http.get(url, {headers: headers}).then(function (response) {
2020-07-04