Google-map API提供无法加载资源:服务器响应状态为403()

时间:2017-07-10 07:05:38

标签: javascript angularjs google-maps google-maps-api-3

目前我正在使用Angularjs开展一个位置项目,我正在使用谷歌地图JavaScript api来加载地图,以及谷歌自动完成服务。我从http://maps.googleapis.com/maps/api/js下载了JS并放在项目js文件夹中。

我已经创建了该指令,代码如下:

.directive('callerLocation', function(){
            return {
                restrict:'E',
                replace:true,
                scope: {callerLocation:'='},
                template: '<input id="caller_location" name="caller_location" type="text"/>',
                link: function($scope, elm, attrs){
                    var autocomplete = new google.maps.places.Autocomplete($("#caller_location")[0], {});
                    google.maps.event.addListener(autocomplete, 'place_changed', function() {
                        var place = autocomplete.getPlace();
                        $scope.callerLocation=place.formatted_address;
                      $scope.$apply();
                    });
                }
            }
          })

使用以下代码

访问它是html
 <caller-location caller-location=caller_location class="form-control"></caller-location>

它可以工作3-4天,之后它会提供访问禁止的问题。

我在应用程序中包含如下的js。(address.js包含来自http://maps.googleapis.com/maps/api/js的js)

 module.exports = {
       client: {
       lib: {
       js: [
         'public/lib/google/address.js'
          ]
       }
     }
    }

2 个答案:

答案 0 :(得分:1)

在通过Cloudflare启用rocketloader后,

遇到了同样的问题。禁用Rocketloader使网站恢复正常运行。

答案 1 :(得分:0)

HTTP状态403代表&#34;访问被禁止&#34;。您确定申请了访问令牌并正确使用该令牌吗?这个问题很可能是由于令牌配置错误造成的。

如果您已在Google API控制台上注册了API密钥,则需要将脚本嵌入:

<script async defer
  src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
</script>