我遇到跨域问题。我想对谷歌地图API执行一些请求但是我有这个错误“请求资源上没有'Access-Control-Allow-Origin'标题。因此不允许原点'http://localhost:8080'访问。” 。我知道这个问题有很多问题,但任何答案对我都有帮助。
我必须做(感谢谷歌地图API)一些请求,以获得位置和某个站之间的距离。这是一个Spring项目,我使用的是Spring MVC。
这是我的JS代码:
findShorterWay = function(){
origin = document.getElementById('shorterWays').value;
if(origin){
for (var i = 0; i < stationNameArray.length; i++){
$.ajax({
url: 'https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins='+origin+'&destinations='+stationNameArray[i].lat+','+stationNameArray[i].lng+'&key=KEY',
data: {
sensor: false,
},
success: function (data) {
console.log(data);
}
});
}
}
}
我使用IDEA功能来创建我的项目所以我没有使用maeven或者graddle。我不能使用jsonp而且我知道我必须改变一些东西来使用CORS并在我的服务器中更改一些东西(tomcat 8.5.5) )但我还没有真正理解它是如何工作的。如果有人可以帮助我。
答案 0 :(得分:1)
应在maps.googleapis.com上设置CORS标头。我担心你不能这样做,谷歌也不希望因某些原因加入它们。
如果您需要从浏览器客户端JavaScript代码执行距离矩阵计算,则必须使用Maps JavaScript API的客户端distance matrix service。
否则,您必须从服务器端Java代码发送HTTP请求以避免此问题。