Google的Places API和JQuery请求 - Access-Control-Allow-Origin不允许使用Origin http:// localhost

时间:2013-04-06 06:03:09

标签: javascript jquery cors google-places-api

我为一个项目进行了一些测试,我想到的是涉及到附近的地方。所以我跟那个大家伙一起开始搞乱Google的Places Api。我正在使用带有openstreet瓷砖的传单来制作我的地图。现在一切都很好,直到我尝试使用dang的东西。

var lat = coords.lat;
var lng = coords.lng;
var apiUrl = "https://maps.googleapis.com/maps/api/place/nearbysearch/json";
var data = {
    key: 'AIzaSyBl8bmE8kQT7RjoXhP6k2yDti44h9-fSUI',
    location: lat+','+lng,
    radius: '10000',
    sensor: 'false',
    rankby: 'prominence',
    types: 'bar|night_club'
};
$.ajax({
  url: apiUrl,
  type: 'POST',
  data: data,    
  dataType:"jsonp",
  crossDomain: true,
  success: function(data) {
            var obj = $.parseJSON(data);
                // console.log(data.next_page_token);
          }
});

dataType属性更改为json我得到Origin http://localhost is not allowed by Access-Control-Allow-Origin.使用jsonp我收到解析错误Unexpected token : Obviusly $.parseJSON不起作用...是否存在无需使用Google Maps Api即可完成此项工作的方法?如果答案是否定的......是否还有其他地方api和google一样好?

谢谢!

2 个答案:

答案 0 :(得分:17)

您正在尝试使用Places API web service,这意味着可以从服务器代码中使用,并且不支持JavaScript所需的JSONP输出。

在JavaScript中,您需要使用Places Library中的Maps API V3。您不能直接从JavaScript或jQuery代码中获取URL。 (您可能可能会发现商家信息库使用的网址格式,但服务条款不允许直接使用而无需通过API /库,并且网址可能随时发生变化。)

您是否有理由不想使用JavaScript中的Maps API?

答案 1 :(得分:0)

https://github.com/joshtronic/php-googleplaces

刚刚制作并将其上传到我的某个网站。

function loadImage(actor, event, i, loadCallback, errorCallback) {
var image = new Image();
var source ='/static/videos/'+actor+'/'+event+'/'+i+'.png';
image.onload = loadCallback;
image.onerror = errorCallback;
image.src = source;
return image;
}