向Google API

时间:2016-03-04 19:04:40

标签: angularjs google-api

我试图在我的angularjs应用程序中向google API发送请求以获取某个位置周围半径的景点。但我在chrome中收到此错误消息: No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' http://localhost:9000'因此不允许访问。

我已经尝试了json和jsonp,但结果是一样的。 :S

    $http.get('https://maps.googleapis.com/maps/api/place/radarsearch/json?location=51.503186,-0.126446&radius=5000&type=museum&key=<MYKEY>')
        .then(function(response) {
            $scope.dataResult = response.data;
        });
    $scope.getlocation = function() {

        $scope.method = 'GET';
        $http({ method: $scope.method, url: "https://maps.googleapis.com/maps/api/place/radarsearch/json?location=51.503186,-0.126446&radius=5000&type=museum&key=<MYKEY>&callback=JSON_CALLBACK" }).
        success(function(data, status) {

            $scope.status = status;
            $scope.data = data;
            console.log(data);
        }).
        error(function(data, status) {
            $scope.data = data || "Request failed";
            $scope.status = status;
        });

    };

我不想在地图上显示结果,我只想以列表格式显示它。

1 个答案:

答案 0 :(得分:0)

这是CORS问题,从客户端你可以启用像这样的cors请求。

angular.module('yourapp').config(['$httpProvider', function($httpProvider) {
        $httpProvider.defaults.useXDomain = true;
        delete $httpProvider.defaults.headers.common['X-Requested-With'];
    }
]);

您的案例存在问题,https://maps.googleapis.com/maps/api/place/radarsearch/json?location=51.503186,-0.126446&radius=5000&type=museum&key=<MYKEY>不允许您的来源有权访问回复。因此,您无法阅读它。

我希望你有一个有效的密钥,并且在注册时你已经在域名中列出了你的本地主机...因为谷歌需要知道这些。