使用angular http服务集成API时出错

时间:2018-07-06 06:35:47

标签: javascript angularjs

在调用一个REST API以使用Angular.js获取数据时,出现以下错误。

  

错误:       无法加载http://13.232.74.71:8081/get/all_hotels:对预检请求的响应未通过访问控制检查:否   请求中存在“ Access-Control-Allow-Origin”标头   资源。因此,不允许原点“ http://10.25.25.100”   访问。

我在下面提供我的代码。

homeController.js:

var dashboard=angular.module('bookingjini');
dashboard.controller('homeController',function($scope,$http,$state,$window,DataService){
    $scope.hotelDetailsArr=[];
    var url='http://13.232.74.71:8081/get/all_hotels';
    var method='GET';
    var data='';
    DataService.connectToServerSideScript(method,url,data)
    .then(function(response) {
        $scope.hotelDetails=response.Data;
        angular.forEach($scope.hotelDetails,function(obj){
            $scope.hotelDetailsArr.push(obj.Record);
        })
    },function(error) {

    })
})

route.js:

Admin.factory('DataService', DataService);
function DataService($http, $q){
    return{
        connectToServerSideScript:connectToServerSideScript
    }
    function connectToServerSideScript(method,url,userData){
        //console.log('deffered',method,url,userData);
        var deferred = $q.defer();
        $http({
            method:method,
            url:url,
            data:userData,
            headers: { 'Content-Type': 'application/json' }
        }).then(function(response) {
            //console.log('data defer',response.data);
            deferred.resolve(response.data);
        },function(error) {
            deferred.reject(error.data);
        })
        //console.log('data defer',deferred.promise);
        return deferred.promise;
    }

}

在这里,我尝试通过该API网址bt访问数据,并收到上述错误。昨天我还添加了Allow-Control-Allow-Origin:扩展名,并且该扩展名有效,但是今天又出现了同样的错误。

1 个答案:

答案 0 :(得分:0)

您可能需要在后端API中启用CORS。