Заголовок авторизации в AngularJS не работает
Я использую аутентификацию по токену REST Django для моего API.
Я отправил свои учетные данные для получения конечной точки токена. Однако, когда я пытаюсь установить заголовок правильно, он продолжает отвечать с ошибкой http 401. Я попробовал это с помощьюcurl -X GET http://127.0.0.1:8000/events/ -H 'Authorization: Token 4d92d36768ca5d555b59cf68899eceab39c23704 '
и это работает! Это мой код:
app.controller('HomeController', ['$scope','$http', function($scope,$http) {
$scope.username = '';
$scope.password = '';
$scope.submitLogin = function () {
var credentials = {
username : $scope.username,
password : $scope.password,
};
var req = $http.post('http://127.0.0.1:8000/api-token-auth/', credentials);
req.success(function(data, status, headers, config) {
$scope.token = data.token;
var str1 = 'Token ';
$scope.tokenheader = str1.concat($scope.token);
$http.defaults.headers.common.Authorization = $scope.tokenheader;
});
req.error(function(data, status, headers, config) {
alert( "failure message: " + JSON.stringify({data: data}));
});
};
$scope.getEvents = function () {
var req = {
method: 'GET',
url: 'http://127.0.0.1:8000/events/',
}
$http(req).then(
function() {
console.log('succes')
},
function(){
console.log('fail')
});
};
}]);
И сообщение об ошибке в Chrome Dev Tools:
XMLHttpRe,quest cannot load http://127.0.0.1:8000/events/.
Response for preflight has invalid HTTP status code 401
Как мне избавиться от этой ошибки 401?
Редактировать: Я только что обнаружил, что ошибка заключается в том, что на моем API не было установлено CORS. Я использовал плагин CORS в Chrome, который работал для части аутентификации моего API, но не для URL моих событий!