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

Lou*_*ieV 10 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);
          }
});
Run Code Online (Sandbox Code Playgroud)

更改dataType属性json我得到Origin http://localhost is not allowed by Access-Control-Allow-Origin.使用jsonp我得到一个解析错误Unexpected token :Obviusly $.parseJSON不起作用...有没有办法使这项工作,而不必使用谷歌地图Api?如果答案是否定的......是否有其他地方api和google一样好?

谢谢!

Mic*_*ary 17

您正在尝试使用Places API Web服务,该服务旨在从服务器代码中使用,并且不支持JavaScript所需的JSONP输出.

在JavaScript中,您需要使用的地方图书馆地图API V3.您不能直接从JavaScript或jQuery代码中获取URL.(您可能会发现Places库使用的URL模式,但服务条款不允许直接使用而无需通过API /库,并且URL可能随时更改.)

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

  • 我知道它是一个古老的主题,但随着像FEM这样的FE框架的趋势,它更容易集成简单的REST服务.我试图使用角度资源但是看到同样的问题. (2认同)