2017-02-03 21 views
1

方向APIからデータを取得しようとするたびに、リクエストされたリソースにNo 'Access-Control-Allow-Origin'ヘッダーが表示されます。私はジオコードAPIに同じリクエストを実行しようとしましたが、それは機能します。これは、私が使用しているコードです:CORSリクエストがGoogle API APIで動作していません

var xhr = new XMLHttpRequest(); 
    xhr.open('GET', 'https://maps.googleapis.com/maps/api/directions/json?origin='+encodeURIComponent(data.origin)+'&destination='+encodeURIComponent(data.destination)+'&key='+encodeURIComponent(data.key), true); 
    xhr.send(); 
+0

これは明らかに、クロスオリジンXHRをサポートしていない/ JavaScriptのhttp://stackoverflow.com/questions/29834185/how-do-i-getからの要求を取得-json-google-directions-api-using-jqueryから – sideshowbarker

答えて

3

このAPIはCORSをサポートしていないため、ajaxリクエストで方向apiにアクセスすることはできません。ただし、ライブラリを使用してDirection APIデータにアクセスできます。

ここGoogle Maps API Examplesから取られた例:

<style> 
    /* Always set the map height explicitly to define the size of the div 
    * element that contains the map. */ 
    #map { 
     height: 100%; 
    } 
    /* Optional: Makes the sample page fill the window. */ 
    html, body { 
     height: 100%; 
     margin: 0; 
     padding: 0; 
    } 
</style> 
<div id="map" style="position: relative; overflow: hidden;"> 
    <div style="height: 100%; width: 100%; position: absolute; top: 0px; left: 0px; background-color: rgb(229, 227, 223);"></div> 
</div> 
<script> 
    function initMap() { 
     var directionsService = new google.maps.DirectionsService; 
     // Optionally create a map 
     var directionsDisplay = new google.maps.DirectionsRenderer; 
     var map = new google.maps.Map(document.getElementById('map'), { 
      zoom: 7, 
      center: {lat: 41.85, lng: -87.65} 
     }); 
     directionsDisplay.setMap(map); 

     directionsService.route({ 
       origin: 'oklahoma city, ok', 
       destination: 'chicago, il', 
       travelMode: 'DRIVING' 
     }, function(response, status) { 
      if (status === 'OK') { 
       // Pass data to the map 
       directionsDisplay.setDirections(response); 

       // See the data in the console 
       console.log(response); 
      } else { 
       window.alert('Directions request failed due to ' + status); 
      } 
     }); 
    } 
</script> 
<script async="" defer="" src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"></script> 
関連する問題