Python EVE フレームワークを使用して API を作成しました。AngularJS アプリから API にアクセスしようとすると、次のようなエラーが表示されます。
XMLHttpRequest cannot load http://127.0.0.1:5000/user/jay3dec. Request header field Authorization is not allowed by Access-Control-Allow-Headers.
上記のエラーを修正するために、settings.py に以下を追加しました。
X_DOMAINS = '*'
X_HEADERS = 'Authorization'
上記のエラーは消え、新しいエラーがコンソールに表示されます:
XMLHttpRequest cannot load http://127.0.0.1:5000/user/jay3dec. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8000' is therefore not allowed access.
しかし、すでにX_DOMAINS = '*'
settings.py に追加しています。
angularjs コードは次のとおりです。
$scope.validate = function() {
var encodedUserNameAndPassword = Base64.encode($scope.username + ':' + $scope.password);
$http.defaults.headers.put = {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
'Access-Control-Allow-Headers': '*'
};
$http.defaults.headers.common['Authorization'] = 'Basic ' + encodedUserNameAndPassword;
$http({
method: 'GET',
url: 'http://127.0.0.1:5000/user/jay3dec'
}).
success(function(data, status, headers, config) {
console.log(data);
}).
error(function(data, status, headers, config) {
alert(data);
});
}
問題の可能性があるものを特定できますか