使用AngularJS的请求中的HTTP Basic Authorization标头?

时间:2014-04-03 06:35:49

标签: angularjs

我正在尝试将AngularJS与外部API一起使用。 API使用HTTP Basic进行身份验证。

我已经四处寻找如何做到这一点,但似乎没有任何效果。 OPTIONS请求始终在没有Authorization标头的情况下发送。

以下是一些示例代码:

 var app = angular.module("BE", []);

        app.controller("NextCtrl", function ($scope, $http) {
            $http.defaults.headers.common['Authorization'] = 'Basic encoded_credentials';
            $http.get('http://api-url.com').
                success(function(data, status, headers) {
                  $scope.event = data.Event;
                  $scope.race = data.Race;
                  $scope.entrants = data.Entrants
                }).
                error(function(data, status, headers, config) {
                  // log error
            });

        });

如何为每个请求设置Authorization标头来发出请求?

1 个答案:

答案 0 :(得分:1)

您无法控制,因为OPTIONS是由浏览器发送的。浏览器会删除OPTION请求中的所有授权数据(请参阅CORS W3C Recommendation)。

在大多数情况下,OPTIONS请求的Authorization标头是不需要的,因为响应仅包含CORS标头,并且不会执行任何操作。