我用pythoneve框架编写了一个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.
为了纠正上述错误,我在设置.py在
^{pr2}$现在,上述错误消失,控制台中显示新错误:
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.
但是我已经在我的设置.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);
});
}
有人能指出问题出在哪里吗
必须将eve配置为。在
那是我的工作。在
Eve只有在以下情况下才会触发CORS响应
Origin
头X_DOMAIN
已在配置文件中设置(settings.py
)由于后一个条件似乎已经满足,所以我将确保该请求是一个正确的CORS请求,并且它包含一个
Origin
头。在阅读以下评论后更新 我认为限制了邮递员的来源。试着用卷曲代替:
当
^{pr2}$X_DOMAIN
设置为*
时,该请求应该返回如下内容:如果这是有效的,那么服务器正在正确地处理CORS请求。然后,您可以根据需要调整
X_HEADERS
和其他CORS服务器端设置。在FWIW,我也有类似的问题。在
然后我了解到,只有模式定义的api才能获得X\u DOMAINS头的效果。使用}这样的东西自己定义的api(如果有)将不受X\u DOMAINS头的影响。因此,在这种情况下,您需要编写自己的装饰器。在
app = Eve(settings=blah)
和{相关问题 更多 >
编程相关推荐