AngularJS发送带有基本身份验证的GET请求
我尝试向具有基本身份验证的服务器发送GET RESTful请求。我编写了以下代码来完成此任务:AngularJS发送带有基本身份验证的GET请求,angularjs,rest,Angularjs,Rest,我尝试向具有基本身份验证的服务器发送GET RESTful请求。我编写了以下代码来完成此任务: module.controller("MainCtrl", ['$scope', '$http', function($scope, $http) { $http.get('http://192.168.10.15:8080/web/services/api/records/20420?_type=json', { headers: {
module.controller("MainCtrl", ['$scope', '$http', function($scope, $http) {
$http.get('http://192.168.10.15:8080/web/services/api/records/20420?_type=json', {
headers: {
'Authorization' : 'Basic username:password'}
})
.success(function(response) {
console.log("my success");
$scope.values = response;
})
}]
);
处理请求时,浏览器控制台上将显示给定错误:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource on http://192.168.10.15:8080/web/services/api/records/20420?_type=json. (Reason: header CORS 'Access-Control-Allow-Origin' missing).
有什么想法吗?您的服务器()不允许您从外部(或仅从您的服务器源服务器)发送请求
您必须允许服务器上的CORS(跨源资源共享),
在您的服务器配置中,有几种方法可以做到这一点
如果您使用的是node.js&express,您可以允许这样的COR:
app.use(function (req, res, next) {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE');
next();
});
在express配置文件中。阅读此页,您应该注意这一段“编写自己的筛选器时要记住的主要思想是,在进行任何AJAX调用之前。浏览器向服务器发送一个选项AJAX请求。服务器需要以所需的权限回复此选项调用。”:D