我正在尝试将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标头来发出请求?
答案 0 :(得分:1)
您无法控制,因为OPTIONS是由浏览器发送的。浏览器会删除OPTION请求中的所有授权数据(请参阅CORS W3C Recommendation)。
在大多数情况下,OPTIONS请求的Authorization
标头是不需要的,因为响应仅包含CORS标头,并且不会执行任何操作。