AngularJS使用基本身份验证发送GET请求

时间:2015-07-01 17:56:10

标签: 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:  {
                    '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).

任何想法?

3 个答案:

答案 0 :(得分:2)

阅读本页http://amodernstory.com/2014/12/27/using-cors-headers-with-java-example/,您应该注意这一段“在编写自己的过滤器时要记住的主要思想是,在进行任何AJAX调用之前。浏览器向服务器发送OPTIONS AJAX请求。服务器需要使用所需的权限回复此OPTIONS调用。“:D

答案 1 :(得分:0)

您的服务器(http://192.168.10.15:8080/)不允许您从外部(或只是您的服务器原始服务器)发送请求。

您必须在服务器上允许CORS(跨源资源共享), 在服务器配置中有几种方法可以做到。

Example

答案 2 :(得分:0)

如果您正在使用node.js&表达你可以允许这样的CORS:

app.use(function (req, res, next) {
    res.setHeader('Access-Control-Allow-Origin', '*');
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE');
    next();
});

在快速配置文件中。